Esempio n. 1
0
 public int TakeDamages(int damages)
 {
     foreach (var skill in Skills)
     {
         if (skill != null)
         {
             damages = skill.OnTakeDamage(damages);
         }
     }
     Hp -= damages;
     if (IsPlayer)
     {
         if (_orbHp == null)
         {
             GetPrivates();
         }
         _orbHp?.UpdateContent(Hp, HpMax, _instantiator, TextType.Hp, -damages, Direction.Down);
     }
     else
     {
         if (_healthBar == null)
         {
             GetPrivates();
         }
         _healthBar.UpdateContent(Hp, HpMax, Name, Frame, Direction.Down);
     }
     return(damages);
 }
Esempio n. 2
0
    public int GainXp(int amount)
    {
        TotalExperience += amount;
        int amountToAdd = amount;

        if (_instantiator == null)
        {
            GetPrivates();
        }
        _instantiator.PopText("+" + amountToAdd + " " + Constants.UnitXp, _xp?.transform.position ?? _ressourcePopPosition, TextType.Xp, TextThickness.Long);
        if (_xp != null)
        {
            _xp.text = Experience.ToString() + "/" + Helper.XpNeedForLevel(Level) + " " + Constants.UnitXp;
        }
        var needed = Helper.XpNeedForLevel(Level);

        _xpBar?.UpdateContent(Experience + amountToAdd, needed, Name, null, Direction.Up);
        if (Experience + amountToAdd >= needed)
        {
            Constants.InputLocked = true;
            _instantiator.StartCoroutine(Helper.ExecuteAfterDelay(1.0f, () =>
            {
                _xpBar?.UpdateContent(0, 1, Name, null, Direction.None);
                while (Experience + amountToAdd >= needed)
                {
                    int reserve = Experience + amountToAdd - needed;
                    LevelUp();
                    needed = Helper.XpNeedForLevel(Level);
                    if (reserve >= needed)
                    {
                        Experience  = 0;
                        amountToAdd = reserve;
                    }
                    else
                    {
                        Experience  = reserve;
                        amountToAdd = 0;
                    }
                }
                if (_instantiator == null)
                {
                    GetPrivates();
                }
                _instantiator.PopText("LEVEL " + Level, _level?.transform.position ?? _ressourcePopPosition, TextType.Magical);
                if (_level != null)
                {
                    _level.text = Level.ToString();
                }
                _xpBar?.UpdateContent(Experience, needed, Name, null, Direction.Up);
                Constants.InputLocked = false;
                return(true);
            }));
        }
        else
        {
            Experience += amountToAdd;
        }
        return(amountToAdd);
    }
Esempio n. 3
0
 public void ShowCharacterLifeName(Character character)
 {
     _fightTitle.transform.position = _hidePosition;
     _healthBar.GetComponent <PositionBhv>().UpdatePositions();
     _healthBar.UpdateContent(character.Hp, character.HpMax, character.Name, character.Frame);
 }
Esempio n. 4
0
    private void SetButtons()
    {
        GameObject.Find("ButtonReload").GetComponent <ButtonBhv>().EndActionDelegate = Helper.ReloadScene;
        GameObject.Find("ButtonPause").GetComponent <ButtonBhv>().EndActionDelegate  = Pause;
        (_buttonPass = GameObject.Find("ButtonPassTurn").GetComponent <ButtonBhv>()).EndActionDelegate   = PassTurn;
        (_buttonRunAway = GameObject.Find("ButtonRunAway").GetComponent <ButtonBhv>()).EndActionDelegate = RunAway;
        (_buttonPm = GameObject.Find("Pm").GetComponent <ButtonBhv>()).EndActionDelegate = OnPlayerPmClick;
        _buttonWeapon1 = GameObject.Find("PlayerWeapon1").GetComponent <ButtonBhv>();
        _buttonWeapon1.EndActionDelegate = ShowWeaponOneRange;
        _buttonWeapon1.GetComponent <SpriteRenderer>().sprite = Helper.GetSpriteFromSpriteSheet("Sprites/ButtonsWeapon_" + PlayerBhv.Character.Weapons[0].Type.GetHashCode());
        _buttonWeapon2 = GameObject.Find("PlayerWeapon2").GetComponent <ButtonBhv>();
        _buttonWeapon2.EndActionDelegate = ShowWeaponTwoRange;
        _buttonWeapon2.GetComponent <SpriteRenderer>().sprite = Helper.GetSpriteFromSpriteSheet("Sprites/ButtonsWeapon_" + PlayerBhv.Character.Weapons[1].Type.GetHashCode());
        _buttonSkill1 = GameObject.Find("PlayerSkill1").GetComponent <ButtonBhv>();
        _buttonSkill1.EndActionDelegate = ClickSkill1;
        _buttonSkill1.GetComponent <SpriteRenderer>().sprite = Helper.GetSpriteFromSpriteSheet("Sprites/ButtonsSkill_" + PlayerBhv.Character.Skills[0].IconId);
        _buttonSkill2 = GameObject.Find("PlayerSkill2").GetComponent <ButtonBhv>();
        _buttonSkill2.EndActionDelegate = ClickSkill2;
        _buttonSkill2.GetComponent <SpriteRenderer>().sprite = Helper.GetSpriteFromSpriteSheet("Sprites/ButtonsSkill_" + PlayerBhv.Character.Skills[1].IconId);
        PauseMenu.Buttons[0].EndActionDelegate = Resume;
        PauseMenu.TextMeshes[0].text           = "Resume";
        PauseMenu.Buttons[1].EndActionDelegate = GiveUp;
        PauseMenu.TextMeshes[1].text           = "Give Up";
        PauseMenu.Buttons[2].EndActionDelegate = Settings;
        PauseMenu.TextMeshes[2].text           = "Settings";
        PauseMenu.Buttons[3].EndActionDelegate = Exit;
        PauseMenu.TextMeshes[3].text           = "Exit";
        PauseMenu.Buttons[4].gameObject.SetActive(false);

        var xPneeded = Helper.XpNeedForLevel(PlayerBhv.Character.Level);

        _xpBar?.UpdateContent(PlayerBhv.Character.Experience, xPneeded, null, null, Direction.None);
        bool isFramePlayerSet = false;

        //bool isFirstOpponentSet = false;
        for (int i = 0; i < _orderList.Count; ++i)
        {
            var tmpCharacterBhv = GetCharacterBhvFromOrderId(_orderList[i].Id);
            var tmpFrameX       = new Vector3(0.944f * (isFramePlayerSet ? i - 1 : i), 0.0f);//Space between frames
            var isPlayer        = false;
            if (tmpCharacterBhv.Character.IsPlayer)
            {
                tmpFrameX        = new Vector3(_buttonPm.transform.position.x + 0.64f, _buttonPm.transform.position.y);//Space next to Pm
                isFramePlayerSet = true;
                isPlayer         = true;
            }
            //else if (!isFirstOpponentSet)
            //{
            //    ShowCharacterLifeName(tmpCharacterBhv.Character);
            //    isFirstOpponentSet = true;
            //}
            var tmpFrameInstance = Instantiator.NewCharacterFrame(tmpCharacterBhv.Character.Race, tmpFrameX, tmpCharacterBhv.OrderId, isPlayer);
            tmpCharacterBhv.Character.Frame = tmpFrameInstance;
            tmpFrameInstance.GetComponent <ButtonBhv>().EndActionDelegate = OnPlayerCharacterClick;
            Instantiator.LoadCharacterSkin(tmpCharacterBhv.Character, tmpFrameInstance.transform.GetChild(0).gameObject.transform.GetChild(0).gameObject);
            tmpFrameInstance.transform.Find("Order").GetComponent <TMPro.TextMeshPro>().text = (i + 1).ToString();
        }
        var firstPlayingFrame = GameObject.Find("FrameCharacter" + _orderList[0].Id);

        OrderIndicator.transform.parent   = firstPlayingFrame.transform;
        OrderIndicator.transform.position = firstPlayingFrame.transform.position;
        _fightTitle.text = "Spawning Phase";
        HideCharacterLifeName();
        ManagePlayerButtons();
    }