示例#1
0
        private void SetWinner(ContractColor ContractColor)
        {
            Card      StrongestCard = CardList[0];
            PlayerTag CurrentWinner = StrongestCard.PlayerID;

            for (int i = 1; i <= 3; i++)
            {
                Card CurrentCard = CardList[i];
                if (CurrentCard.Color == StrongestCard.Color)
                {
                    if (CurrentCard.Figure > StrongestCard.Figure)
                    {
                        StrongestCard = CurrentCard;
                        CurrentWinner = StrongestCard.PlayerID;
                    }
                }
                else
                {
                    if ((int)(CurrentCard.Color) == (int)(ContractColor))
                    {
                        StrongestCard = CurrentCard;
                        CurrentWinner = StrongestCard.PlayerID;
                    }
                }
            }
            this.Winner = CurrentWinner;
        }
示例#2
0
 public override void Execute(FreneticScript.CommandSystem.CommandQueue queue, CommandEntry entry)
 {
     try
     {
         IntegerTag num = IntegerTag.TryFor(entry.GetArgumentObject(queue, 1));
         if (num == null)
         {
             queue.HandleError(entry, "Invalid amount number!");
             return;
         }
         PlayerTag player = PlayerTag.For(entry.GetArgument(queue, 0));
         if (player == null)
         {
             queue.HandleError(entry, "Invalid player!");
             return;
         }
         player.Internal.player.life.askWarm((uint)num.Internal);
         if (entry.ShouldShowGood(queue))
         {
             entry.Good(queue, "Successfully adjusted the warmth level of a player!");
         }
     }
     catch (Exception ex) // TODO: Necessity?
     {
         queue.HandleError(entry, "Failed to adjust player's warmth level: " + ex.ToString());
     }
 }
示例#3
0
    public void InitAuctionModule(Game MainModule, PlayerTag StartingPlayer)
    {
        this.MainModule = MainModule;
        AuctionState.Init();

        DeclaredContractLabel.text      = "";
        TeamTakenHandsCounterLabel.text = "";

        AssignAuctionFirstRow();

        if (GameConfig.DevMode)
        {
            //MainModule.GameManagerScript.UserData.position = MainModule.Match.CurrentBidding.CurrentPlayer;
            UserData.Position = MainModule.Match.CurrentBidding.CurrentPlayer;
        }

        AssignControls();
        // setting visibility of dialog for first render, later it'll be updated according to game state & current player
        if (MainModule.Match.CurrentBidding.CurrentPlayer == UserData.Position)//MainModule.GameManagerScript.UserData.position
        {
            AuctionDialog.enabled = true;
        }
        else
        {
            AuctionDialog.enabled = false;
        }
    }
示例#4
0
 public Card(CardFigure Figure, CardColor Color, PlayerTag PlayerID, CardState CurrentState = CardState.ON_HAND)
 {
     this.Figure       = Figure;
     this.Color        = Color;
     this.PlayerID     = PlayerID;
     this.CurrentState = CurrentState;
 }
 public void TileAdjacent(Vector3Int cellPosition, PlayerTag playerTag)
 {
     if (this.playerTag == playerTag)
     {
         tilemap.SetTile(cellPosition, activeTile);
     }
 }
        public override void Execute(FreneticScript.CommandSystem.CommandQueue queue, CommandEntry entry)
        {
            PlayerTag player = PlayerTag.For(entry.GetArgument(queue, 0));

            if (player == null)
            {
                queue.HandleError(entry, "Invalid player!");
                return;
            }
            ItemAssetTag item = ItemAssetTag.For(entry.GetArgument(queue, 1));

            if (item == null)
            {
                queue.HandleError(entry, "Invalid item!");
                return;
            }
            byte amount = 1;

            if (entry.Arguments.Count > 2)
            {
                amount = (byte)Utilities.StringToUInt(entry.GetArgument(queue, 2));
            }
            if (ItemTool.tryForceGiveItem(player.Internal.player, item.Internal.id, amount))
            {
                if (entry.ShouldShowGood(queue))
                {
                    entry.Good(queue, "Successfully gave a " + TagParser.Escape(item.Internal.name) + "!");
                }
            }
            else
            {
                queue.HandleError(entry, "Failed to give item (is the inventory full?)!");
            }
        }
示例#7
0
    void Start()
    {
        canMove = true;

        //used for respawn
        startPosition = new Vector3(this.transform.position.x, this.transform.position.y, 0f);

        //gather componenets
        player      = ReInput.players.GetPlayer(playerId);
        sprite      = GetComponent <SpriteRenderer>();
        body2D      = GetComponent <Rigidbody2D>();
        anim        = GetComponent <Animator>();
        playerTag   = GetComponent <PlayerTag>();
        playerLight = GetComponent <PlayerLight>();


        // value holds
        playerHorizSpeedHold = playerHorizSpeed;
        playerVertSpeedHold  = playerVertSpeed;
        deathTimerHold       = deathTimer;

        //If we want to implement changing main player mid game
        if (sharedData.currentMainPlayer == playerId)
        {
            playerTag.enabled   = false;
            playerLight.enabled = true;
        }
        else if (sharedData.currentMainPlayer != playerId)
        {
            playerTag.enabled   = true;
            playerLight.enabled = false;
        }
    }
 void UpdatePreviouslySelectedTile(TileBase tileBase, PlayerTag playerTag)
 {
     if (this.player.playerTag == playerTag)
     {
         previouslySelectedTile = tileBase;
     }
 }
 void Awake()
 {
     tilemap   = GameManager.Instance.tilemap;
     playerTag = gameObject.GetComponentInParent <Player>().playerTag;
     PlayerTilemap.TileConquered += TileConquered;
     PlayerTilemap.TileAdjacent  += TileAdjacent;
 }
示例#10
0
        public bool NextCard(Card Card)
        {
            if (Card.PlayerID != this.CurrentPlayer)
            {
                throw new WrongPlayerException();
            }

            currentTrick.NextCard(Card, this.ContractColor);
            if (currentTrick.GetCount() == 4)
            {
                TrickList.Add(currentTrick);
                this.CurrentPlayer = currentTrick.Winner;
                for (int i = 0; i < 4; i++)
                {
                    currentTrick.CardList[i].CurrentState = CardState.DISPOSED;
                }
                currentTrick = new Trick();
            }
            else
            {
                this.CurrentPlayer = NextPlayer(this.CurrentPlayer);
            }

            Card.CurrentState = CardState.ON_TABLE;
            return(true);
        }
示例#11
0
    public void GiveEnemy(int r)
    {
        GameObject enemy          = Instantiate(enemies_prefabs[r], transform.position, Quaternion.identity) as GameObject;
        Base_Mob   enemyScript    = enemy.GetComponent <Base_Mob> ();
        PlayerTag  enemyPlayerTag = enemy.GetComponent <PlayerTag> ();

        enemyPlayerTag.SetId(playerTag.Id);
        enemyPlayerTag.SetTeam(playerTag.Team);

        Color col  = Color.white;
        Color col1 = Color.white;

        for (int i = 0; i < enemies_active.Length; i++)
        {
            if (enemies_active [i] == null)
            {
                enemies_active[i] = enemy;
                float   angle   = (360f / enemies_active.Length) * i;
                Vector3 sideVec = new Vector3(Mathf.Cos(angle), Mathf.Sin(angle)) * 2f;

                float amount = .5f;
                if (playerTag.Id == 1)
                {
                    col    = Color.blue;
                    col1.r = amount;
                    col1.g = amount;
                }
                else if (playerTag.Id == 2)
                {
                    col    = Color.yellow;
                    col1.r = amount;
                }
                else if (playerTag.Id == 3)
                {
                    col    = Color.red;
                    col1.b = amount;
                    col1.g = amount;
                }
                else if (playerTag.Id == 4)
                {
                    col    = Color.magenta;
                    col1.g = amount;
                }

                enemyScript.Ini(gameObject, playerTag.Id, playerTag.Team, false);
                //enemyScript.Ini(i, sideVec, gameObject,col,this);
                break;
            }
        }

        enemy_count++;
        enemyScript.GetComponentInChildren <SpriteRenderer> ().color = col1;

        Physics2D.IgnoreCollision(GetComponent <CapsuleCollider2D>(), enemyScript.GetComponent <CircleCollider2D>());
        Base_WeaponManager wepMan = GetComponent <Base_WeaponManager> ();       //.weapons [0];
        float damageRed           = Mathf.Min(.5f, 1f - (enemy_count * .1f));

        wepMan.DamageRed = damageRed;
        NumberSpawner.Instance.CreateNumber(transform.position, "-" + Mathf.Min(50f, enemy_count * 10f) + "% Damage", NUMBER_COL.DEBUFF, 0.1f, 60f, 1f);
    }
示例#12
0
 void Awake()
 {
     tilemap             = GameManager.Instance.tilemap;
     arenaTilesPositions = GameManager.Instance.arenaTilesPositions;
     playerTag           = GetComponentInParent <Player>().playerTag;
     tileRenderer        = GetComponentInParent <Player>().tileRenderer;
 }
示例#13
0
 public void attemptControl(PlayerTag pt)
 {
     if (!this.vacant) { return; }
     this.playerAttemptingControl = pt;
     this.controlAttemptBegan = Time.time;
     this.controlcountdown = true;
     Debug.Log(gameObject.name + " has begun control countdown");
 }
示例#14
0
        public async Task <Player[]> GetByTag(PlayerTag tag)
        {
            var           builder  = Builders <Player> .Filter;
            var           filter   = builder.Eq("Tag", tag);
            List <Player> _players = await _collection.Find(filter).ToListAsync();

            return(_players.ToArray());
        }
示例#15
0
        public async Task <Player[]> GetAllWithTag(PlayerTag tag)
        {
            FilterDefinition <Player> filter = Builders <Player> .Filter.ElemMatch(x => x.TagList, a => a == tag);

            var result = Collection.Find(filter);

            return((await result.ToListAsync()).ToArray());
        }
示例#16
0
 protected virtual void Start()
 {
     playerTag      = GetComponent <PlayerTag> ();
     movementScript = GetComponent <Base_Movement> ();
     healthScript   = GetComponent <Base_Health> ();
     body           = GetComponent <Rigidbody2D> ();
     targetter      = GetComponentInChildren <Targetter> ();
 }
 public void Initialize(Vector2 position, Vector2 targetPosition, PlayerTag tag, float health, bool flying)
 {
     m_actualPosition = position;
     SetTargetPosition(targetPosition);
     m_playerTag = tag;
     m_isFlying  = flying;
     m_health    = health;
 }
示例#18
0
 public Contract(ContractHeight ContractHeight, ContractColor ContractColor, PlayerTag DeclaredBy, bool XEnabled = false, bool XXEnabled = false)
 {
     this.ContractHeight = ContractHeight;
     this.ContractColor  = ContractColor;
     this.DeclaredBy     = DeclaredBy;
     this.XEnabled       = XEnabled;
     this.XXEnabled      = XXEnabled;
 }
示例#19
0
 public void TileConquered(Vector3Int cellPosition, PlayerTag playerTag)
 {
     if (this.playerTag == playerTag)
     {
         tilemap.SetTile(cellPosition, conqueredTile);
         TilePreviouslySelected?.Invoke(conqueredTile, playerTag);
     }
 }
示例#20
0
 public GameInfo(ContractColor ContractColor, PlayerTag Declarer)
 {
     this.CurrentPlayer = NextPlayer(Declarer);
     this.TrickList     = new List <Trick>();
     this.currentTrick  = new Trick();
     this.ContractColor = ContractColor;
     this.Declarer      = Declarer;
 }
示例#21
0
        public override void Execute(FreneticScript.CommandSystem.CommandQueue queue, CommandEntry entry)
        {
            PlayerTag player = PlayerTag.For(entry.GetArgument(queue, 0));

            if (player == null)
            {
                queue.HandleError(entry, "Invalid player!");
                return;
            }
            ItemAssetTag item = ItemAssetTag.For(entry.GetArgument(queue, 1));

            if (item == null)
            {
                queue.HandleError(entry, "Invalid item!");
                return;
            }
            byte amount = 1;

            if (entry.Arguments.Count > 2)
            {
                amount = (byte)Utilities.StringToUInt(entry.GetArgument(queue, 2));
            }
            PlayerInventory inventory       = player.Internal.player.inventory;
            byte            remainingAmount = amount;
            InventorySearch search;

            while (remainingAmount > 0 && (search = inventory.has(item.Internal.id)) != null) // TODO: Less awkward code!?
            {
                if (search.jar.item.amount <= remainingAmount)
                {
                    inventory.removeItem(search.page, inventory.getIndex(search.page, search.jar.x, search.jar.y));
                    remainingAmount -= search.jar.item.amount;
                }
                else
                {
                    inventory.sendUpdateAmount(search.page, search.jar.x, search.jar.y, (byte)(search.jar.item.amount - remainingAmount));
                    remainingAmount = 0;
                }
            }
            if (remainingAmount == 0)
            {
                if (entry.ShouldShowGood(queue))
                {
                    entry.Good(queue, "Successfully took " + amount + " " + TagParser.Escape(item.Internal.name) + "!");
                }
            }
            else if (remainingAmount < amount)
            {
                if (entry.ShouldShowGood(queue))
                {
                    entry.Good(queue, "Successfully took " + (amount - remainingAmount) + " " + TagParser.Escape(item.Internal.name) + "! (" + remainingAmount + " more not found!)");
                }
            }
            else
            {
                queue.HandleError(entry, "Failed to take item (does the inventory contain any?)!");
            }
        }
示例#22
0
     private static PlayerTag NextPlayer(PlayerTag currentPlayer, bool gameOver) => (gameOver, currentPlayer) switch
     {
         (true, _) => PlayerTag.None,
         (false, PlayerTag.X) => PlayerTag.O,
         (false, PlayerTag.O) => PlayerTag.X,
         (false, PlayerTag.None) => PlayerTag.X,
         _ => throw new ArgumentOutOfRangeException(nameof(currentPlayer), currentPlayer, null)
     };
 }
示例#23
0
    /// <summary>
    /// Sets the playerColor of the object and the playerTag.
    /// </summary>
    public void SetPlayerStats()
    {
        // Set the color of the building to the player color (Takes only the first Children and its first Material).
        GetComponentInChildren <MeshRenderer>().material.color = player.playerColor;
        // Set the PlayerTag to the players PlayerTag.
        playerTag = player.playerTag;

        //influenceMap.AddPlayerObject(this);
    }
示例#24
0
    /// <summary>플레이어 추가 </summary>
    /// <param name="playerTag">플레이어 위치 tag</param>
    /// <param name="id">플레이어 id</param>
    /// <param name="isAi">ai 인지?</param>
    public void AddPlayer(PlayerTag playerTag, string id, bool isAi)
    {
        Player player = gameObject.AddComponent <Player>();

        player.PlayerPlace = playerTag;
        player.IsAi        = isAi;
        player.PlayerId    = id;
        Players.Add(player);
    }
示例#25
0
        int GetPlayerCount(List <Play> plays, Player player, PlayerSubCategory subcat)
        {
            PlayerTag tag;

            tag = new PlayerTag {
                SubCategory = subcat, Value = player
            };
            return(plays.Where(p => p.Players.Contains(tag)).Count());
        }
示例#26
0
        public void OnPointerEnter(PointerEventData data)
        {
            PlayerTag buttonID  = CastCharForPlayerTag(ReferencedButton.gameObject.name[0]);
            bool      available = SeatManager.CheckSeatAvailability(buttonID);

            if (available && !UserData.Sitting)
            {
                ReferencedButton.image.color = new Color32(255, 221, 0, 255);
            }
        }
示例#27
0
 private bool IsPlayerGrand(PlayerTag playerTag, Match game)
 {
     if (game.GameState == GameState.PLAYING && game.CurrentGame != null)
     {
         if (((int)game.CurrentGame.Declarer + 2) % 4 == (int)playerTag)
         {
             return(true);
         }
     }
     return(false);
 }
        public override TemplateObject Handle(TagData data)
        {
            string    pname = data.GetModifier(0);
            PlayerTag ptag  = PlayerTag.For(pname);

            if (ptag == null)
            {
                return(new TextTag("&{NULL}").Handle(data.Shrink()));
            }
            return(ptag.Handle(data.Shrink()));
        }
示例#29
0
 public void PlayAction(Action a, PlayerTag t)
 {
     if (t == player1.tag)
     {
         player1.action = a;
     }
     if (t == player2.tag)
     {
         player2.action = a;
     }
 }
示例#30
0
 private void controlCountDown()
 {
     if (this.controlTime <= Time.time - controlAttemptBegan)//if enough time has passed 
     {
         this.controlcountdown = false;
         isVacant(false);
         this.owner = this.playerAttemptingControl;
         this.playerAttemptingControl = null;
         Debug.Log("Success! " + gameObject.name+"'s new owner is: "+this.owner.getID());
         this.controlAttemptBegan = -8675309; 
     }
 }
示例#31
0
        public void OnPointerClick(PointerEventData eventData)
        {
            PlayerTag buttonID  = CastCharForPlayerTag(ReferencedButton.gameObject.name[0]);
            bool      available = SeatManager.CheckSeatAvailability(buttonID);

            if (available && !UserData.Sitting)
            {
                var requestData = new SitActionRequestSerializer();
                requestData.PlaceTag = (int)buttonID;
                GameManager.PerformServerAction("sit", requestData.GetApiObject(), this.OnSitRequestCallback, buttonID);
            }
        }
示例#32
0
    private void Awake()
    {
        Inst = this;

        thisPlayerTag = Global.State.playerTag;
        thisPlayer    = GetPlayer(thisPlayerTag);

        // Move camera to first ship in fleet
        Vector3 shipPos = fleets.Find(f => f.PlayerTag == thisPlayerTag).Ships[0].transform.position;

        camController.transform.position = new Vector3(shipPos.x, 0f, shipPos.z);
    }
示例#33
0
 private void loseControl()
 {
     this.owner = null;
     this.controlAttemptBegan = -8675309;
     this.building = null;
 }
示例#34
0
        int GetPlayerCount(List<Play> plays, Player player, PlayerSubCategory subcat)
        {
            PlayerTag tag;

            tag = new PlayerTag{SubCategory=subcat, Value=player};
            return plays.Where(p => p.Players.Contains(tag)).Count();
        }
示例#35
0
 public bool equals(PlayerTag o)
 {
     if (o._id != this._id || o._group_id != this._group_id) { return false; }
     return true;
 }
示例#36
0
	public void SetLocalPlayer(PlayerTag _tag) {
		localPlayer = _tag;
	}
示例#37
0
	public void SetPlayerTagParent(PlayerTag _tag) {
		_tag.transform.SetParent(playerListTransform);
		_tag.transform.localScale = Vector3.one;
	}