示例#1
0
        public string AddStoreInfosToUsableItem(Data_Item item, UI_StoreItemDisplayV2 itemUi, bool isHidden)
        {
            if (!data.moreInfosInUseableShops || isHidden)
            {
                return(string.Empty);
            }

            Data_InventoryItem invItem = item as Data_InventoryItem;

            if (invItem == null || invItem.ItemType != InventoryItemTypes.Useable)
            {
                return(string.Empty);
            }

            int playerId = UI_StoreScreenV2.Instance.CurrentShopper;
            PlayerCharacters playerChar   = PlayerManager.Instance.Players[playerId].PlayerCharacter;
            bool             haveConsumed = PlayerGlobalInventory.instance.HaveYouConsumedThis(item, playerChar);

            itemUi.ToggleAlreadyPurchased(haveConsumed, true);

            if (invItem.ItemName == "ITEM_NAME_NOIZE_FIGURE")
            {
                return(" +1 ALL");
            }

            return(string.Format("{0}{1}{2}{3}{4}{5}",
                                 invItem.Stat_ST > 0 ? string.Format(" +{0} ST", invItem.Stat_ST) : string.Empty,
                                 invItem.Stat_SP > 0 ? string.Format(" +{0} SP", invItem.Stat_SP) : string.Empty,
                                 invItem.Stat_AG > 0 ? string.Format(" +{0} AG", invItem.Stat_AG) : string.Empty,
                                 invItem.Stat_WP > 0 ? string.Format(" +{0} WP", invItem.Stat_WP) : string.Empty,
                                 invItem.Stat_AT > 0 ? string.Format(" +{0} AT", invItem.Stat_AT) : string.Empty,
                                 invItem.Stat_LK > 0 ? string.Format(" +{0} LK", invItem.Stat_LK) : string.Empty
                                 ));
        }
    void CharacterSetup()
    {
        Vector2 tPos, mPos, vPos;

        tPos = new Vector3(2, 0, 0f);
        mPos = new Vector3(0, 0, 0f);
        vPos = new Vector3(1, 0, 0f);
        PlayerCharacters t = tank.GetComponent <PlayerCharacters>();

        t.setCharacter(0);
        t.x = (int)tPos.x;
        t.y = (int)tPos.y;
        Instantiate(tank, tPos, Quaternion.identity);
        PlayerCharacters m = mage.GetComponent <PlayerCharacters>();

        m.setCharacter(1);
        m.x = (int)mPos.y;
        m.y = (int)mPos.y;
        Instantiate(mage, mPos, Quaternion.identity);
        PlayerCharacters v = vampire.GetComponent <PlayerCharacters>();

        v.setCharacter(2);
        v.x = (int)vPos.x;
        v.y = (int)vPos.y;
        Instantiate(vampire, vPos, Quaternion.identity);
    }
示例#3
0
    void Awake()
    {
        if (Singleton == null)
        {
            Singleton = this;
        }
        var previous_default = transform.Find(DefaultCharacterName);

        if (previous_default != null)
        {
            Destroy(previous_default.gameObject);
        }
        var go_default = Instantiate(Default, transform);

        go_default.name       = DefaultCharacterName;
        CurrentCharacter      = go_default.GetComponent <PlayerCharacter>();
        CurrentCharacter.Data = new PlayerCharacterData {
            Name = DefaultCharacterName,
            Id   = 0
        };
        Load(0);
        if (Entries.Length == 0)
        {
            Entries    = new PlayerCharacterData[1];
            Entries[0] = CurrentCharacter.Data;
            Save(0);
        }
        for (int i = 1; i < Entries.Length; i++)
        {
            CreateEntry(i);
        }
    }
示例#4
0
        public DbPlayerCharactersObject GetByLogin(string inlogin)
        {
            string login = inlogin.ToLower();

            var query = Query <DbPlayerCharactersObject> .EQ(player => player.Login, login);

            return(PlayerCharacters.FindOne(query));
        }
示例#5
0
        private void SortPlayerCharacters()
        {
            ObservableCollection <Character> sorted;

            sorted = new ObservableCollection <Character>(PlayerCharacters.OrderBy(c => c.Name));

            PlayerCharacters = sorted;
        }
 public PlayerCharacterScores(PlayerCharacters p)
 {
     this.Name       = p.Name;
     this.Owner      = p.Owner;
     this.Class      = p.Class;
     this.IsMain     = p.IsMain;
     this.IsInactive = p.IsInactive;
     this.IsSocial   = p.IsSocial;
     this.UserID     = p.UserID;
     this.Comment    = p.Comment;
 }
示例#7
0
        public void DisplayHitDamage(CombatEntity victim, CombatEntity attacker, DamageInfo damageInfo, float dmg, bool hasBombBraEffect)
        {
            if (!data.displayDamageOnHit || victim.CharacterSprite == null || dmg <= 0f)
            {
                return;
            }

            float ratio = 0.5f;

            if (attacker != null)
            {
                RCG.Player player = attacker as RCG.Player;
                if (player != null)
                {
                    PlayerCharacters pc = PlayerManager.Instance.Players[player.PlayerID].ClassNameToPlayerCharacter;
                    if (hasBombBraEffect)
                    {
                        ratio = 1f;
                    }

                    int current = damageInfo.DamageAmount;
                    int min     = current;
                    int max     = current;
                    for (int i = 0; i < player.CharacterDescription.MovesList.Count; i++)
                    {
                        int baseDmg = player.CharacterDescription.MovesList[i].DamageInfo.DamageAmount;

                        if (baseDmg <= 0)
                        {
                            continue;
                        }

                        if (min > baseDmg)
                        {
                            min = baseDmg;
                        }
                        if (max < baseDmg)
                        {
                            max = baseDmg;
                        }
                    }
                    ratio = Mathf.InverseLerp((float)min, (float)max, (float)current);
                }
                else
                {
                    ratio = Mathf.InverseLerp(0.05f, 0.4f, Mathf.CeilToInt(dmg) / (float)(victim.Stamina + Mathf.CeilToInt(dmg)));
                }
            }
            int scaledFontSize = Mathf.RoundToInt(Mathf.Lerp(data.hitDmgTextFontSizeMin, data.hitDmgTextFontSizeMax, ratio));

            DisplayCustomTextAbove(victim, string.Format("{0}{1}", Mathf.CeilToInt(dmg), hasBombBraEffect ? "!" : ""), true, data.hitDmgTextColor, scaledFontSize);
        }
    private void OnMouseDown()
    {
        GameObject       text = GameObject.Find("Info");
        Text             t2   = (Text)text.GetComponent(typeof(Text));
        GameObject       pc   = GameObject.FindWithTag("SelectedPlayer");
        PlayerCharacters pcc  = pc.GetComponent <PlayerCharacters>();

        pcc.hasMoved          = true;
        t2.text              += "\n<color=#008000ff>" + pcc.getName() + "</color> moved to " + x + ", " + y;
        pcc.x                 = x;
        pcc.y                 = y;
        pc.transform.position = new Vector3(x, y, 0);
        clearHighlights();
    }
示例#9
0
 public Character GetCharacter(int position)
 {
     if (position < 5)
     {
         return(PlayerCharacters.ElementAt(position));
     }
     else
     {
         if (Enemies.Count > position - 5)
         {
             return(Enemies.ElementAt(position - 5));
         }
         return(null);
     }
 }
示例#10
0
    public void EndTurn()
    {
        if (GameObject.FindWithTag("SelectedPlayer") != null)
        {
            GameObject.FindWithTag("SelectedPlayer").tag = "Player";
        }

        GameObject[] characterObjects = GameObject.FindGameObjectsWithTag("Player");
        foreach (GameObject characterObject in characterObjects)
        {
            PlayerCharacters character = characterObject.GetComponent <PlayerCharacters>();
            character.hasMoved = false;
            character.hasActed = false;
        }
        EnemyTurn();
    }
示例#11
0
    public void ChangeTurn(int turn, Client cli)
    {
        SetPlayerArrow(turn);
        CheckWinner();
        ClearTurn();
        indexTurn      = turn;
        _currentPlayer = Players[indexTurn];

        Debug.Log(_currentPlayer.gameObject.name + "  " + indexTurn);

        int curChar = _currentPlayer.CharacterTurn();

        cli.Send(CommandReader.SendCommand(Command.START_TURN, Sender.CLIENT, _currentPlayer.ID.ToString(), curChar.ToString(), "0", 0));
        Debug.Log("SEND TURN START CALLED!!!");

        BlockMouseSelection(turn);
    }
示例#12
0
        private void AddCharacterToPlayer()
        {
            try
            {
                PlayerCharacters.Add(_addSelectedCharacter);
            }
            catch
            {
                ObservableCollection <Character> playerCharacters = new ObservableCollection <Character>();

                playerCharacters.Add(AddSelectedCharacter);

                PlayerCharacters = playerCharacters;
            }

            SortPlayerCharacters();
        }
示例#13
0
    private void MoveEnemyNext2Player(NonPlayerCharacters enemy, PlayerCharacters player)
    {
        int x, y;

        x = player.x + 1;
        y = player.y;
        int distance = System.Math.Abs(x - enemy.x) + System.Math.Abs(y - enemy.y);

        if (distance <= enemy.moveRange)
        {
            enemy.x = x;
            enemy.y = y;
            enemy.gameObject.transform.position = new Vector3(x, y, 0);
            return;
        }
        x        = player.x - 1;
        y        = player.y;
        distance = System.Math.Abs(x - enemy.x) + System.Math.Abs(y - enemy.y);
        if (distance <= enemy.moveRange)
        {
            enemy.x = x;
            enemy.y = y;
            enemy.gameObject.transform.position = new Vector3(x, y, 0);
            return;
        }
        x        = player.x;
        y        = player.y + 1;
        distance = System.Math.Abs(x - enemy.x) + System.Math.Abs(y - enemy.y);
        if (distance <= enemy.moveRange)
        {
            enemy.x = x;
            enemy.y = y;
            enemy.gameObject.transform.position = new Vector3(x, y, 0);
            return;
        }
        x        = player.x;
        y        = player.y - 1;
        distance = System.Math.Abs(x - enemy.x) + System.Math.Abs(y - enemy.y);
        if (distance <= enemy.moveRange)
        {
            enemy.x = x;
            enemy.y = y;
            enemy.gameObject.transform.position = new Vector3(x, y, 0);
            return;
        }
    }
 /// <summary>
 /// Gets the Id of the player character who will be taking it's turn next.
 /// If the currently acting character is a player character, return it.
 /// </summary>
 /// <returns>The Id of the next player character to act.</returns>
 public int GetNextActivePlayerId()
 {
     foreach (var character in CurrentRoundOrder)
     {
         if (PlayerCharacters.Contains(character) && character.CurrentHealth > 0)
         {
             return(character.Id);
         }
     }
     foreach (var character in NextRoundOrder)
     {
         if (PlayerCharacters.Contains(character) && character.CurrentHealth > 0)
         {
             return(character.Id);
         }
     }
     return(-1);
 }
示例#15
0
    public void Attack()
    {
        GameObject       playerObj = GameObject.FindWithTag("SelectedPlayer");
        PlayerCharacters player    = playerObj.GetComponent <PlayerCharacters>();

        GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");
        foreach (GameObject enemyObject in enemies)
        {
            NonPlayerCharacters enemy = enemyObject.GetComponent <NonPlayerCharacters>();
            int distanceToEnemy       = System.Math.Abs(player.x - enemy.x) + System.Math.Abs(player.y - enemy.y);

            if (distanceToEnemy <= player.attackRange)
            {
                AttackFields f = attackField.GetComponent <AttackFields>();
                f.player = player;
                f.enemy  = enemy;
                Instantiate(f, new Vector3(enemy.x, enemy.y, 0f), Quaternion.identity);
            }
        }
    }
示例#16
0
 private void OnDelete()
 {
     PlayerCharacters.Remove(DeleteSelectedCharacter);
 }
示例#17
0
    public void EnemyTurn()
    {
        GameObject text = GameObject.Find("Info");
        Text       t2   = (Text)text.GetComponent(typeof(Text));

        GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");
        foreach (GameObject enemyObject in enemies)
        {
            NonPlayerCharacters enemy            = enemyObject.GetComponent <NonPlayerCharacters>();
            GameObject[]        characterObjects = GameObject.FindGameObjectsWithTag("Player");
            PlayerCharacters    closestCharacter = null;
            int distance2ClosestChar             = 1000;
            foreach (GameObject characterObject in characterObjects)
            {
                PlayerCharacters character = characterObject.GetComponent <PlayerCharacters>();
                int distance = System.Math.Abs(character.x - enemy.x) + System.Math.Abs(character.y - enemy.y);
                if (!alerted && distance < 6)
                {
                    t2.text += "\nThe knight screams:\"Demons! Cultists! Tax-Evaders! Ready your arms men!\"";
                    t2.text += "\nYou have alerted the order of the fifth dawn.";
                    alerted  = true;
                }
                if (distance < distance2ClosestChar)
                {
                    distance2ClosestChar = distance;
                    closestCharacter     = character;
                }
            }
            if (alerted)
            {
                if (distance2ClosestChar <= enemy.moveRange + 1)
                {
                    MoveEnemyNext2Player(enemy, closestCharacter);

                    float roll = Random.Range(0.0f, 100.0f);
                    if (roll >= 50)
                    {
                        int damage = (enemy.damage - closestCharacter.defence);
                        closestCharacter.health -= damage;
                        if (closestCharacter.health > 0)
                        {
                            t2.text += "\n<color=#008000ff>" + enemy.name + "</color> attacked <color=#F62D2DFF>" + closestCharacter.name + "</color> and did <b>" + damage + "</b>";
                        }
                        else
                        {
                            t2.text += "\nIn an act guided by the fifth dawn itself<color=#008000ff>" + enemy.name + "</color> kills <color=#F62D2DFF>" + closestCharacter.name + "</color>. It is a good day to be good!";
                            Destroy(closestCharacter.gameObject);
                        }
                    }
                    else
                    {
                        t2.text += "\nThe knight stumbled and fell over his sword! You laugh and spit on him!";
                    }
                }
                else
                {
                    int     movement = enemy.moveRange;
                    Vector3 goHere   = new Vector3(enemy.x, enemy.y, 0);
                    while (movement > 0)
                    {
                        if (closestCharacter.x != goHere.x)
                        {
                            goHere.x += Math.Sign(closestCharacter.x - goHere.x);
                        }
                        else
                        {
                            goHere.y += Math.Sign(closestCharacter.y - goHere.y);
                        }
                        movement -= 1;
                    }
                    enemy.x = (int)goHere.x;
                    enemy.y = (int)goHere.y;
                    enemy.gameObject.transform.position = goHere;
                }
            }
        }
    }
 /// <summary>
 /// Checks if it is the player's turn.
 /// </summary>
 /// <returns></returns>
 public bool IsPlayerTurn()
 {
     return(PlayerCharacters.Contains(CurrentRoundOrder[0]));
 }
示例#19
0
	// Assign our UI elements and I get our stats setup from here too since that
	// needs to be done after getting our player number. This gets called from
	// Manager_Game after it creates us.
	public void CreatedSetup(int playerNumber)
	{
        PlayerNumber = playerNumber;
		healthSlider = Manager_UI.instance.plHealthSlider[playerNumber - 1];
		healthFill = Manager_UI.instance.plHealthSliderFill[playerNumber - 1];
        myCharacter = Manager_Game.PlayersChosen[playerNumber - 1];
        string myCharName = myCharacter.ToString();
        if (myCharName.Contains("Twin")) // A twin variant character
        {
            if (myCharName.Contains("Ethan"))
                // Red version of Ethan's suit.
                mySkinnedMeshes[1].materials[0].mainTexture = mySkinnedMeshes[4].materials[0].mainTexture = bodyTextures[1];
            else if (myCharName.Contains("Dude"))
                mySkinnedMeshes[2].materials[1].mainTexture = bodyTextures[1]; // Lighter-colored version of Unity Guy's suit.
        }
        string myName = myCharacter.ToString();
        myName = myName.Replace('_', ' '); // Remove any '_' in the character's name.
        Manager_UI.instance.plNameText[playerNumber - 1].text = myName;
        int subtract = playerNumber > 1 ? playerNumber - Manager_Game.playersDefeated.Count : 1;
        ControlSetup (subtract);
        GetStats ();
	}
 /// <summary>
 /// Returns an IEnumerable containing the Ids of all the player's characters
 /// </summary>
 /// <returns></returns>
 public IEnumerable <int> GetPlayerCharacterIds()
 {
     return(PlayerCharacters.Select(character => character.Id));
 }