Exemple #1
0
    void LoadCharacterData(PlayableCharacter character)
    {
        CharacterStats characterStats = character.charStats;

        //Character base
        avatarImage.sprite = characterStats.avatar;
        EquipableItem weapon = character.currentEquipment.currentWeapon;

        if (weapon != null)
        {
            charWeaponText.text = weapon.itemName;
        }
        else
        {
            charWeaponText.text = "";
        }

        EquipableItem armor = character.currentEquipment.currentArmor;

        if (armor != null)
        {
            charArmorText.text = armor.itemName;
        }
        else
        {
            charArmorText.text = "";
        }
        //Character stats
        currentAttackText.text  = characterStats.totalAttack.ToString();
        currentDefenseText.text = characterStats.totalDefense.ToString();
        currentSpeedText.text   = characterStats.totalSpeed.ToString();
        currentMagicText.text   = characterStats.totalMagic.ToString();

        PrintUpdatedStats(characterStats);
    }
        public override void UseMagic(PlayableCharacter user, bool is_battle)
        {
            SpendMana(user);
            Unit   target = user.CurrentTarget;
            Random rng    = new Random();

            Console.WriteLine($"{user.Name} is making a move!\n");
            Console.WriteLine($"{user.Name} attempts to summon a powerful spell...");

            SoundManager.magic_attack.SmartPlay();
            CMethods.SmartSleep(750);

            int attack_damage = UnitManager.CalculateDamage(user, target, CEnums.DamageType.magical, spell_power: SpellPower);

            if (target.Evasion < rng.Next(0, 512))
            {
                SoundManager.enemy_hit.SmartPlay();
                target.HP -= attack_damage;
                Console.WriteLine($"{user.Name}'s attack connects with the {target.Name}, dealing {attack_damage} damage!");
            }

            else
            {
                SoundManager.attack_miss.SmartPlay();
                Console.WriteLine($"The {target.Name} narrowly dodges {user.Name}'s spell!");
            }
        }
        public override void UseMagic(PlayableCharacter user, bool is_battle)
        {
            SpendMana(user);
            Unit target = user.CurrentTarget;

            Console.WriteLine($"{user.Name} is making a move!\n");
            Console.WriteLine($"{user.Name} is preparing to cast {SpellName}...");
            SoundManager.ability_cast.SmartPlay();
            CMethods.SmartSleep(750);

            if (target == user)
            {
                Console.WriteLine($"{user.Name} raises their stats using the power of {SpellName}!");
            }

            else
            {
                Console.WriteLine($"{user.Name} raises {target.Name}'s stats using the power of {SpellName}!");
            }

            SoundManager.buff_spell.SmartPlay();

            // We write to TempStats instead of the player's actual stats so that the changes will
            // not persist after battle
            target.TempStats[Stat] = (int)(target.TempStats[Stat] * (1 + IncreaseAmount));
        }
Exemple #4
0
    public void BuildInitialPlayerDeck()
    {
        GameObject[] PlayersAlive = GameObject.FindGameObjectsWithTag("Player");
//		Debug.Log (PlayersAlive.Length);

        //Tekee alkupakat ensimmäiseen taisteluun.
        //Nämä pakat ovat ennalta määritetyt
        GameObject Scripts = GameObject.Find("_ScriptsTutorialBattle");

        foreach (GameObject Player in PlayersAlive)
        {
            PlayableCharacter player = Player.GetComponent <PlayableCharacter> ();
//			Debug.Log (player.name);
            if (player.PlayerClass.CharacterClassName == "Warrior")
            {
                WarriorStartDeck warriorStartDeck = Scripts.GetComponent <WarriorStartDeck> ();
                warriorStartDeck.StartDeck();
            }
            else if (player.PlayerClass.CharacterClassName == "Mage")
            {
                MageStartDeck mageStartDeck = Scripts.GetComponent <MageStartDeck> ();
                mageStartDeck.StartDeck();
            }
            else if (player.PlayerClass.CharacterClassName == "Priest")
            {
                PriestStartDeck priestStartDeck = Scripts.GetComponent <PriestStartDeck> ();
                priestStartDeck.StartDeck();
            }
            else if (player.PlayerClass.CharacterClassName == "Rogue")
            {
                RogueStartDeck rogueStartDeck = Scripts.GetComponent <RogueStartDeck> ();
                rogueStartDeck.StartDeck();
            }
        }
    }
Exemple #5
0
    public void SelectedPlayerThree()
    {
        GameObject        Player = GameObject.Find("Player3");
        PlayableCharacter player = Player.GetComponent <PlayableCharacter>();

        selecterModifyPlayer = player;
    }
Exemple #6
0
    private void CalculateDistancesToPlayers()
    {
        int     minDistance = 30;
        Vector3 startLoc    = new Vector3();
        Vector3 endLoc      = new Vector3();

        startLoc.y = TileY;
        startLoc.z = TileX - (TileY - (Mathf.Abs(TileY) % 2)) / 2;
        startLoc.x = -startLoc.y - startLoc.z;
        GameObject[] Players = GameObject.FindGameObjectsWithTag("Player");
        foreach (GameObject Player in Players)
        {
            PlayableCharacter player = Player.GetComponent <PlayableCharacter> ();
            endLoc.y = player.PlayerClass.TileY;
            endLoc.z = player.PlayerClass.TileX - (player.PlayerClass.TileY - (Mathf.Abs(player.PlayerClass.TileY) % 2)) / 2;
            endLoc.x = -endLoc.y - endLoc.z;
            int d = (int)(Mathf.Abs(startLoc.x - endLoc.x) + Mathf.Abs(startLoc.y - endLoc.y) + Mathf.Abs(startLoc.z - endLoc.z)) / 2;
            player.PlayerClass.DistanceToEnemy = d;
            if (d <= minDistance)
            {
                minDistance = d;
            }
        }
        foreach (GameObject Player in Players)
        {
            PlayableCharacter player = Player.GetComponent <PlayableCharacter> ();
            if (player.PlayerClass.DistanceToEnemy == minDistance)
            {
                selectedPlayer = player.name;
                return;
            }
        }
    }
Exemple #7
0
    public virtual void Fix()
    {
        // If the sabotagable is fully fixed
        isSabotaged = false;

        // Tell everyone that the task is now completed
        task.CompleteRPC(false);
        task = null;
        Destroy(GetComponent <Task>());
        DisableTaskMarker();

        // Update UI and animation
        sabotageManager.SabotageFixed();
        animationObject.SetActive(false);

        // Reset sabotage/task idicators
        PlayableCharacter me = NetworkManager.instance.GetMe();

        if (inRange && me is Traitor)
        {
            EnableSabotageMarker();
        }
        else if (me is Loyal)
        {
            me.EnableTaskMarker();
        }

        // After an item is fixed its no longer interactable for anyone, as
        // they are single use
        Destroy(this);
    }
Exemple #8
0
        public async Task Load(params string[] s)
        {
            string name = string.Join(" ", s);

            if (string.IsNullOrEmpty(name))
            {
                var characterString = "```yaml" + Environment.NewLine + "\u200b";

                var animaChars = CharacterRepository.Characters.OfType <AnimaCharacter>().Where(x => x.Player == Context.Message.Author.Mention);
                if (animaChars.Any())
                {
                    characterString += "Anima:" + Environment.NewLine;
                    foreach (AnimaCharacter character in animaChars)
                    {
                        characterString += "   " + character.Name + " - LVL " + character.Level + (character.IsCurrent ? " (loaded)" : "") + Environment.NewLine;
                    }
                }

                var lChars = CharacterRepository.Characters.OfType <L5RCharacter>().Where(x => x.Player == Context.Message.Author.Mention);
                if (lChars.Any())
                {
                    characterString += "Legend of the five Rings:" + Environment.NewLine;
                    foreach (var character in lChars)
                    {
                        characterString += "   " + character.Name + " - " + character.Clan + (character.IsCurrent ? " (loaded)" : "") + Environment.NewLine;
                    }
                }
                characterString += "```";

                await Context.Message.DeleteAsync();

                await Context.Channel.SendMessageAsync("List of playable characters :" + Environment.NewLine + characterString);
            }
            else
            {
                PlayableCharacter character = null;
                try
                {
                    CharacterRepository.Characters.Where(x => x.Player == Context.Message.Author.Mention).ToList().ForEach(x => x.IsCurrent = false);
                    character           = CharacterRepository.Find <PlayableCharacter>(Context.Message.Author.Mention, name);
                    character.IsCurrent = true;

                    //await (Context.Message.Author as IGuildUser).ModifyAsync(x => x.Nickname = character.Name);
                }
                catch (InvalidOperationException ex)
                {
                    await Context.Channel.SendMessageAsync("Error 404: Character not found!");

                    throw;
                }
                //catch (Exception)
                //{
                //    await Context.Channel.SendMessageAsync("Nickname could not be changed for " + Context.Message.Author.Mention);
                //}

                await Context.Message.DeleteAsync();

                await Context.Channel.SendMessageAsync($"Character : {character.Name} successfully loaded !");
            }
        }
Exemple #9
0
    private void Awake()
    {
        learntSkills  = new List <Skill>();
        unknownSkills = new List <Skill>();

        m_owner = GetComponent <PlayableCharacter>();
    }
Exemple #10
0
        public async Task DeleteCharacter(params string[] s)
        {
            _ = Context.Message.DeleteAsync();
            string            expr      = string.Join(' ', s);
            PlayableCharacter character = CharacterRepository.Find <PlayableCharacter>(Context.Message.Author.Mention, expr);

            if (character == null)
            {
                await Context.Channel.SendMessageAsync("Error 404: Character not found or currently loaded!");

                return;
            }

            try
            {
                CharacterRepository.DeleteExcelCharacter(character);
            }
            catch (Exception ex)
            {
                await Context.Channel.SendMessageAsync($"Erreur lors de la suppression du fichier.{Environment.NewLine}{ex.Message}");

                throw;
            }
            await Context.Channel.SendMessageAsync("Suppression effectuée.");
        }
Exemple #11
0
    public void SetRider(PlayableCharacter PC)
    {
        Rigidbody2D RBody = GetComponent <Rigidbody2D>();

        if (Rider != null)
        {
            Rider.transform.parent   = null;
            Rider.transform.position = Ground.position;

            Collider2D col = Rider.GetComponent <Collider2D>();
            col.enabled = true;
            Controller.SetTarget(Rider);

            CharacterConfiguration.Alignment = 0;
            RBody.constraints = RigidbodyConstraints2D.FreezeAll;
        }

        Rider = PC;

        if (PC != null)
        {
            PC.transform.position = Saddle.position;
            PC.transform.parent   = transform;
            PC.Controller.SetTarget(this);

            CharacterConfiguration.Alignment = PC.CharacterConfiguration.Alignment;

            Collider2D col = PC.GetComponent <Collider2D>();

            RBody.constraints = RigidbodyConstraints2D.FreezeRotation;
            col.enabled       = false;
            return;
        }
    }
Exemple #12
0
 public void Interact(PlayableCharacter PC)
 {
     if (CanInteract)
     {
         SetRider(PC);
     }
 }
Exemple #13
0
 private void OnTriggerEnter2D(Collider2D other)
 {
     if (!isServer)//only server version deals damage
     {
         return;
     }
     if (tag.Equals("Enemy"))
     {
         return;
     }
     //Debug.Log("touched plyer"+timeBtwLeft);
     if (other.CompareTag("PlayerObject") && isDead == false)
     {
         if (timeBtwLeft <= 0)
         {
             PlayableCharacter PC = other.GetComponent <PlayableCharacter>();
             if (PC)  //collided with player deal damage
             {
                 timeBtwLeft = timeBtwDamage;
                 PC.RD.TakeDamage(damage);
                 //Debug.Log("boss touched player dealing damage");
             }
         }
     }
 }
Exemple #14
0
    public void SetVote(Vote vote, int votingPlayerId)
    {
        // -1 as player being voted on does not vote
        int numberOfVotingPlayers = NetworkManager.instance.GetPlayers().Count - 1;

        // Get the player who is voting
        PlayableCharacter votingPlayer = PhotonView.Find(votingPlayerId).GetComponent <PlayableCharacter>();

        // Add player to correct player list
        if (vote == Vote.For)
        {
            playersVotingFor.Add(votingPlayer);
        }
        if (vote == Vote.Against)
        {
            playersVotingAgainst.Add(votingPlayer);
        }

        // Set UI
        playersUI.SetPlayerVote(vote, votingPlayer);
        votesFor.text     = $"For: {playersVotingFor.Count}";
        votesAgainst.text = $"Against: {playersVotingAgainst.Count}";

        // Check if the vote should now be ended
        if (playersVotingFor.Count > numberOfVotingPlayers / 2 || playersVotingAgainst.Count >= numberOfVotingPlayers / 2)
        {
            EndVote();
        }
    }
Exemple #15
0
    public void StartVote(int suspectedPlayerId, int voteLeaderId)
    {
        voteStarted = true;
        hasVoted    = false;

        // Empty list of whos voted for what
        playersVotingFor     = new List <PlayableCharacter>();
        playersVotingAgainst = new List <PlayableCharacter>();

        // Set the voting players
        suspectedPlayer = PhotonView.Find(suspectedPlayerId).GetComponent <PlayableCharacter>();
        playersUI.SetSuspectedPlayer(suspectedPlayer);
        voteLeader = PhotonView.Find(voteLeaderId).GetComponent <PlayableCharacter>();

        // UI
        voteTopRightUI.SetActive(true);
        currentVoteUI.SetActive(true);
        votesFor.text     = $"For: 0";
        votesAgainst.text = $"Against: 0";
        // Check if the vote is on you
        bool voteIsOnYou = NetworkManager.instance.GetMe() == suspectedPlayer;

        // At set text of UI based on if you are being voted on or not
        votingUIText.text = voteIsOnYou ? "You are being voted on!": $"Is {suspectedPlayer.Owner.NickName} the traitor?";
        helperText.text   = voteIsOnYou ? "Convince everyone you're not the traitor" : "Press 'Y' for yes, 'N' for no.";
        setVoteUI.SetActive(true);

        // Start voting music
        votingMusic.Play();
    }
Exemple #16
0
    void CreateMessage()
    {
        MessageDialog     msg1  = new MessageDialog();
        PlayableCharacter char1 = CharacterParty.charactersParty.Find(p => p.charStats.name.Equals(charName));

        msg1.avatarImage = char1.charStats.avatar;
        msg1.avatarName  = char1.charStats.name;
        msg1.dialogText  = quote;
        msgList.Add(msg1);

        MessageDialog msg2 = new MessageDialog();

        msg2.avatarImage = msg1.avatarImage;
        msg2.avatarName  = msg1.avatarName;
        msg2.dialogText  = quote2;
        msgList.Add(msg2);

        MessageDialog msg3 = new MessageDialog();

        msg3.dialogText = quote3;
        msgList.Add(msg3);

        MessageDialog msg4 = new MessageDialog();

        msg4.avatarImage = char1.charStats.avatar;
        msg4.avatarName  = char1.charStats.name;
        msg4.dialogText  = quote4;
        msgList.Add(msg4);
    }
Exemple #17
0
    public static void UpdateCharacter(PlayableCharacter player)
    {
        int index = charactersParty.FindIndex(p => p.charStats.name.Equals(player.charStats.name));

        charactersParty.RemoveAt(index);
        charactersParty.Insert(index, player);
    }
Exemple #18
0
//    void OnTriggerEnter2D(Collider2D other)
//    {
//        PlayableCharacter playableCharacter_temp = other.GetComponent<PlayableCharacter>();
//        if (playableCharacter_temp && ApplicableCharacters.Contains(playableCharacter_temp.PlayerType))
//        {
//            buttonInstance.SetActive(true);
//            PatternButtonAnim.SetTrigger(MiniGame.ButtonAnimations[XboxButton.A]);
////            if (CharPos)
////            {
////                playableCharacter.disableMovement();
////                playableCharacter.transform.position = CharPos.position;
////                playableCharacter.PlayerController.isRight = CharFacingRight;
////            }
////            MiniGameScript.StartMiniGame(this, playableCharacter);
//        }
//    }

    private void OnTriggerStay2D(Collider2D other)
    {
        if (MiniGameScript.inMiniGame || (_brokenMiniGame.CanBeBroke && _brokenMiniGame.BrokenMiniGameScript.inMiniGame))
        {
            return;
        }
        PlayableCharacter playableCharacter_temp = other.GetComponent <PlayableCharacter>();

        if (!playableCharacter_temp)
        {
            return;
        }
        if (!IsBroken)
        {
            if (state == State.READY && ApplicableCharacters.Contains(playableCharacter_temp.PlayerType))
            {
                currentMiniGameInPlay = MiniGameScript;
                EnterMiniGame(currentMiniGameInPlay, playableCharacter_temp);
            }
        }
        else
        {
            if (playableCharacter_temp.PlayerType == GameManager.PlayerType.Dad)
            {
                currentMiniGameInPlay = _brokenMiniGame.BrokenMiniGameScript;
                EnterMiniGame(currentMiniGameInPlay, playableCharacter_temp);
            }
        }
    }
Exemple #19
0
    public void SetHealthBarPlayer()
    {
//		Debug.Log("Healthbar test");
        float myHealth = CurHealth / maxHealth;

//		Debug.Log(curHealth + " current Health");
//		Debug.Log(myHealth);
        if (myHealth <= 0)
        {
            myHealth = 0;
        }
        if (myHealth >= 1)
        {
            myHealth = 1;
        }
        healthBar.transform.localScale = new Vector3(myHealth, healthBar.transform.localScale.y, healthBar.transform.localScale.z);
//		Debug.Log("myHealth " + myHealth);
        GameObject        TileMap = GameObject.Find("Map");
        TileMap           map     = TileMap.GetComponent <TileMap>();
        GameObject        Enemy   = GameObject.Find(map.selectedEnemy);
        BaseEnemy         enemy   = Enemy.GetComponent <BaseEnemy>();
        GameObject        Player  = GameObject.Find(enemy.selectedPlayer);
        PlayableCharacter player  = Player.GetComponent <PlayableCharacter>();

        player.PlayerClass.HpPointsRemaining = (int)(myHealth * player.PlayerClass.HpPointsMax);
    }
Exemple #20
0
 public override void OnEnter()
 {
     character = GetComponentInParent <PlayableCharacter>();
     nextState = "";
     character.boxCollider.enabled = false;
     character.aiPath.canMove      = false;
 }
Exemple #21
0
    public void CalculateDistanceToTargets(int startPointX, int startPointY)
    {
        Vector3 startLoc = new Vector3();
        Vector3 endLoc   = new Vector3();

        startLoc.y = startPointY;
        startLoc.z = startPointX - (startPointY - (Mathf.Abs(startPointY) % 2)) / 2;
        startLoc.x = -startLoc.y - startLoc.z;
        GameObject[] PlayersAlive = GameObject.FindGameObjectsWithTag("Player");
        foreach (GameObject Player in PlayersAlive)
        {
            PlayableCharacter player = Player.GetComponent <PlayableCharacter> ();
            endLoc.y = player.PlayerClass.TileY;
            endLoc.z = player.PlayerClass.TileX - (player.PlayerClass.TileY - (Mathf.Abs(player.PlayerClass.TileY) % 2)) / 2;
            endLoc.x = -endLoc.y - endLoc.z;
            int distance = (int)(Mathf.Abs(startLoc.x - endLoc.x) + Mathf.Abs(startLoc.y - endLoc.y) + Mathf.Abs(startLoc.z - endLoc.z)) / 2;
            if (distance <= range)
            {
                GameObject     Tile           = GameObject.Find("Hex_" + player.PlayerClass.TileX + "_" + player.PlayerClass.TileY);
                ClickableTile  tile           = Tile.GetComponent <ClickableTile> ();
                GameObject     HighlightTiles = GameObject.Find("_Scripts");
                HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> ();
                highlightTiles.tileX = tile.tileX;
                highlightTiles.tileY = tile.tileY;
                highlightTiles.ShowHoveringTileSkill();
            }
        }
    }
    public void UpdateHand()
    {
//		GameObject Map = GameObject.Find("Map");
//		TileMap map = Map.GetComponent<TileMap> ();
        GameObject        Player = GameObject.Find(map.selecterPlayer);
        PlayableCharacter player = Player.GetComponent <PlayableCharacter> ();

        GameObject Hand = GameObject.Find("Hand");

        DamageCard[] HealCards = Hand.GetComponentsInChildren <DamageCard> ();
        foreach (DamageCard card in HealCards)
        {
            int cardDamage = 0;
            int cardCost   = Mathf.CeilToInt(card.CardCost * (1 - player.PlayerClass.CardCostReduction));
            switch (card.DamageType)
            {
            case DamageTypes.Physical:
                cardDamage = card.CardDamage * player.PlayerClass.PhysicalAttackDMG;
                break;

            case DamageTypes.Magic:
                cardDamage = card.CardDamage * player.PlayerClass.MagicAttackDMG;
                break;

            case DamageTypes.Ranged:
                cardDamage = card.CardDamage * player.PlayerClass.RangedAttackDMG;
                break;

            default:
                break;
            }
            card.transform.Find("CardAttack").GetComponent <Text>().text = cardDamage.ToString();
            card.transform.Find("CardCost").GetComponent <Text>().text   = cardCost.ToString();
        }
    }
    void Update()
    {
        // If all players are in the scene and spawned then assign tasks
        if (PhotonNetwork.LocalPlayer.IsMasterClient &&
            NetworkManager.instance.CheckAllPlayers <string>("CurrentScene", "GameScene") &&
            NetworkManager.instance.AllCharactersSpawned() &&
            !NetworkManager.instance.RoomPropertyIs <bool>("TasksSet", true)
            )
        {
            SetTasks();
        }

        // Set inital task for player
        if (
            !requested &&
            NetworkManager.instance.RoomPropertyIs("TasksSet", true)
            )
        {
            requested = true;
            PlayableCharacter character = NetworkManager.instance.GetMe();
            if (character is Loyal)
            {
                Debug.Log("Requesting new task!");
                RequestNewTask();
            }
        }
    }
    public virtual void StartMiniGame(ActionableObject actionable, PlayableCharacter initiator)
    {
        inMiniGame = true;
        print("Start parent game");
        actionableObject = actionable;
        player           = initiator;
        isPlaying        = true;

        player.currentMiniGame = this;

        if (!objectAnimationEnter.Equals("") && !objectAnimationEntered)
        {
            objectAnimationEntered = true;
            _animator.SetTrigger(objectAnimationEnter);
        }

        if (!playerAnimationEnter.Equals("") && !playerAnimationEntered)
        {
            playerAnimationEntered = true;
            player.m_animator.SetTrigger(playerAnimationEnter);
        }

        if (desapireInEnter)
        {
            player.enabledMovement(false);
            player.spriteRenderer.enabled = false;
        }
    }
Exemple #25
0
    private void CreateMagicButtons()
    {
        PlayableCharacter currentChar      = HeroesToManage[0].GetComponent <CharacterStateMachine>().GetCharacter();
        List <BaseAttack> magicAttacksList = currentChar.magicAttacks;
        int CharMana = currentChar.charStats.currentMagicPoints;

        if (magicAttacksList.Count > 0)
        {
            Button magicButton = CreateButton(m_LanguageManagerInstance.GetTextValue(m_MagicTextKey));
            magicButton.onClick.AddListener(() => SwitchToMagicAttacks());
            foreach (BaseAttack magicAttack in magicAttacksList)
            {
                Button magButton = CreateButton(magicAttacksButton, m_LanguageManagerInstance.GetTextValue(magicAttack.attackName), magicSpacer, false);

                AttackButton attButton = magButton.transform.parent.GetComponent <AttackButton>();
                attButton.magicAttackToPerform = magicAttack;
                magicButtonsList.Add(magButton);

                //Controla si se puede realizar la magia
                if (magicAttack.attackCost > CharMana)
                {
                    attButton.DeactivateButton();
                }
                else if (attButton.IsDeactivated())
                {
                    attButton.ActivateButton();
                }
            }
        }
    }
    public IEnumerator SabotageStarted(Sabotageable sabotageable)
    {
        this.sabotageable = sabotageable;
        StartCoroutine(NotifySabotage());

        // Wait till sabotage starts
        yield return(new WaitForSeconds(5));

        // Start sabotage timer
        timerManager.StartTimer(Timer.sabotageTimer);

        // Play music
        sabotageMusic.Play();

        // Update UI
        sabotageMiddleUI.SetActive(true);
        taskUI.SetActive(false);
        taskNotificationUI.SetActive(false);
        warningText.gameObject.SetActive(true);
        sabotageUI.SetActive(true);

        // Set task marker
        PlayableCharacter me = NetworkManager.instance.GetMe();

        if (me is Loyal)
        {
            me.DisableTaskMarker();
        }

        yield return(new WaitForSeconds(7));

        warningText.gameObject.SetActive(false);
    }
Exemple #27
0
    private void LoadCharacter(int characterIndex, Transform objectTransform)
    {
        PlayableCharacter playCharacter = CharacterParty.charactersParty[characterIndex];
        GameObject        characterGO   = Instantiate(playCharacter.prefab);

        characterGO.transform.position = objectTransform.position;
        characterGO.transform.rotation = objectTransform.rotation;
        PlayableCharacter character = characterGO.GetComponent <PlayableCharacter>();

        character.charStats        = playCharacter.charStats;
        character.currentEquipment = playCharacter.currentEquipment;
        character.magicAttacks     = playCharacter.magicAttacks;
        character.attacksList      = playCharacter.attacksList;

        GameObject            charStatsPanel = Instantiate(characterBattleStatsPrefab, characterBattleStatsPanel, false);
        CharacterStateMachine stateMachine   = characterGO.GetComponent <CharacterStateMachine>();

        CharacterSelected button = charStatsPanel.GetComponentInChildren <CharacterSelected>();

        button.characterPrefab = characterGO;

        Transform stateMachineTransform = charStatsPanel.transform.Find(progressBarName);

        stateMachine.progressBar = stateMachineTransform.GetComponent <Image>();
        stateMachine.nameText    = charStatsPanel.transform.Find(nameTextName).GetComponent <Text>();
        stateMachine.healthText  = charStatsPanel.transform.Find(HPTextName).GetComponent <Text>();
        stateMachine.magicText   = charStatsPanel.transform.Find(MPTextName).GetComponent <Text>();

        charatersList.Add(playCharacter);
        HeroesInBattle.Add(characterGO);
    }
 public void SetCharacter(int playerNumber, PlayableCharacter character)
 {
     if (!pControlInfo[playerNumber].character)
     {
         pControlInfo[playerNumber].character = character;
     }
 }
Exemple #29
0
 IEnumerator EndGameScreen(PlayableCharacter winner)
 {
     Controls.controlsEnabled = false;
     GameObject endGameUI = GameObject.Find("EndScreens");
     endGameUI.GetComponent<Image>().enabled = true;
     Text endText = endGameUI.transform.FindChild("EndText").GetComponent<Text>();
     if (winner is Bear)
     {
         endGameUI.transform.FindChild("EndBear").GetComponent<Image>().enabled = true;
         _audioSource.PlayOneShot(bearWinSound);
         endText.color = new Color(1f, 200f / 255f, 41f / 255f);
         endText.text = "Bear won !";
     }
     else if (winner is Eagle)
     {
         endGameUI.transform.FindChild("EndEagle").GetComponent<Image>().enabled = true;
         _audioSource.PlayOneShot(eagleWinSound);
         endText.color = new Color(0f, 227f / 255f, 20f / 255f);
         endText.text = "Eagle won !";
     }
     else
     {
         endGameUI.transform.FindChild("EndPig").GetComponent<Image>().enabled = true;
         _audioSource.PlayOneShot(pigWinSound);
         endText.color = new Color(182f / 255f, 87f / 255f, 161f / 255f);
         endText.text = "Pig won !";
     }
     endText.enabled = true;
     yield return new WaitForSeconds(4f);
     Controls.controlsEnabled = true;
     Application.LoadLevel(0);
 }
 // Calls RPC to assing task to character and also call the funciton that the
 // rpc reference to ensure task is completed instanly on master client
 public void AssignTask(PlayableCharacter character)
 {
     //Master calls assignToCharacter first to ensure it is done before anyone else
     AssignTaskToCharacter(character);
     //Then we call AssignToCharacter on all other players
     View.RPC("AssignTaskToCharacterRPC", RpcTarget.Others, character.View.ViewID);
 }
Exemple #31
0
    public void CheckVisibleTiles()
    {
        GameObject DrawLine = GameObject.Find("LineRenderer");
        DrawLine   drawLine = DrawLine.GetComponent <DrawLine> ();

        visibleTiles           = new List <Node>();
        drawLine.skillDistance = 20;
        GameObject        Player = GameObject.Find(selecterPlayer);
        PlayableCharacter player = Player.GetComponent <PlayableCharacter> ();

//		player.VisibleNodes = null;
        GameObject[] Tiles = GameObject.FindGameObjectsWithTag("Hex");
        foreach (GameObject tile in Tiles)
        {
            ClickableTile clickableTile = tile.GetComponent <ClickableTile> ();
            bool          allowed       = drawLine.CalculateLine(player.PlayerClass.TileX, player.PlayerClass.TileY, clickableTile.tileX, clickableTile.tileY);
            if (allowed)
            {
//				clickableTile.hexVisible = true;
                visibleTiles.Add(graph[clickableTile.tileX, clickableTile.tileY]);
            }
            else
            {
//				clickableTile.hexVisible = false;
            }
        }
        player.VisibleNodes = visibleTiles;
    }
Exemple #32
0
 public void EndGame(PlayableCharacter winner)
 {
     _endGame = true;
     StartCoroutine(EndGameScreen(winner));
 }
	public void ReloadCharacterStats(PlayableCharacter character)
	{
		int hp = character.GetModifiedStatValue("HP");
		int maxHP = character.GetModifiedStatValue("Max HP");
		HealthLabel.Text = string.Format("{0}/{1}", hp, maxHP);
		
		MagicLabel.Text = character.GetModifiedStatValue("Magic").ToString();
		AttackLabel.Text = character.GetModifiedStatValue("Attack").ToString();
		MaxAtbLabel.Text = character.GetModifiedStatValue("Max ATB").ToString();
		AtbSpeedLabel.Text = character.GetModifiedStatValue("ATB Speed").ToString();
	}
	public void UpdateMemberName(PlayableCharacter character)
	{
		MemberNameLabel.Text = character.Name;
	}
Exemple #35
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            graphics.PreferredBackBufferWidth = graphics.GraphicsDevice.DisplayMode.Width;
            graphics.PreferredBackBufferHeight = graphics.GraphicsDevice.DisplayMode.Height;
            graphics.ApplyChanges();
            //Engine.LevelBounds = new Rectangle(0, 0, graphics.GraphicsDevice.Viewport.Width * 2, graphics.GraphicsDevice.Viewport.Height);

            base.Initialize();
            Engine.InitializeLevel("Level1");
            player = Engine.InitializePlayer();
            Engine.InitializeEnemies();
            Engine.InitializeObjects();
            Engine.InitializeUpdatableObjects();
            Engine.InitializeItems();
            camera = new Camera2D(graphics.GraphicsDevice);
            camera.SetSceneBounds(new Rectangle(50, 50, Engine.LevelBounds.Width - 200, Engine.LevelBounds.Height));
            camera.SetChaseTarget(player);
            debug = new MidoriDebug(Content, spriteBatch);

            gameOver = false;
            player.PlayerIsDead += (sender, evArgs) => { gameOver = true; };
        }
	public void ReloadCharacterEquipment(PlayableCharacter character)
	{
		ReloadWeaponStats(character.Weapon);
		ReloadArmorStats(character.Armor);
		ReloadAccessoryStats(character.Accessory);
	}