예제 #1
0
        protected override void DoSetData(PointerData data)
        {
            _playerId = PlayerCastData.EntityId(data.IdList);
            var playerEntity = _playerContext.GetEntityWithEntityKey(new Core.EntityComponent.EntityKey(_playerId, (short)EEntityType.Player));

            if (null != playerEntity && playerEntity.hasGamePlay)
            {
                var player = _playerContext.flagSelfEntity;

                if (player.gamePlay.IsLifeState(EPlayerLifeState.Alive) && !player.gamePlay.IsSave &&                    //自己是活着
                    playerEntity.playerInfo.TeamId == player.playerInfo.TeamId && !playerEntity.gamePlay.IsBeSave &&     //是队友
                    playerEntity.gamePlay.IsLifeState(EPlayerLifeState.Dying) &&                                         //队友是受伤状态
                    Vector3.Distance(player.position.Value, playerEntity.position.Value) <= SharedConfig.MaxSaveDistance //距离
                    )
                {
                    Tip = string.Format(ScriptLocalization.client_actiontip.saveplayer, playerEntity.playerInfo.PlayerName);
                }
            }
        }
예제 #2
0
        public void InitKeyBinding()
        {
            var receiver = new PointerReceiver(UiConstant.maxMapWindowLayer, BlockType.None);

            receiver.AddAction(UserInputKey.PickUpTip, (data) =>
            {
                var pointerData = data;

                var type = pointerData.IdList[0];
                switch ((ECastDataType)type)
                {
                case ECastDataType.Player:
                    selectedPlayerId = PlayerCastData.EntityId(data.IdList);
                    //Debug.Log(selectedPlayerId);
                    break;

                default: selectedPlayerId = 0;
                    break;
                }
            });
            playerInfoUIAdapter.RegisterPointerReceive(receiver);
        }