void Start() {
		GameObject managerObject = GameObject.FindGameObjectWithTag ("Manager");
		manager = managerObject.GetComponent<Manager> ();

		playerMovement = GetComponent<PlayerMovement> ();
		playerView = GetComponent <PlayerView> ();
	}
예제 #2
0
	void Start()
	{
		if (isLocalPlayer)
		{
			m_view = Instantiate(PlayerView).GetComponent<PlayerView>();
			m_view.Init(this);
		}
	}
예제 #3
0
    public MapWalkState()
        : base(GameStates.MapWalk)
    {
        _playerView = GameManager.Instance.PlayerView;
        _mapView = GameManager.Instance.MapView;

        _enemyController = GameObject.Find("EnemyController").GetComponent<EnemyController>();
    }
예제 #4
0
        public PlayfieldView(rect_d bounds)
        {
            Bounds = bounds;

            backgroundImageSequence = (ImageSequence)DataAssetCache.Instance.GetAsset(typeof(ImageSequence), "Map1Background");
            backgroundImage = backgroundImageSequence.GetImageByIndex(0);

            ImageSequence menuButtonSequence = (ImageSequence)DataAssetCache.Instance.GetAsset(typeof(ImageSequence), "MenuButtonFromGame");
            ButtonWidget menuButton = new ButtonWidget(400, 12, new ThreeImageButtonView(menuButtonSequence.GetImageByIndex(0), menuButtonSequence.GetImageByIndex(1), menuButtonSequence.GetImageByIndex(2)));
            AddChild(menuButton);
            menuButton.ButtonClick += new ButtonWidget.ButtonEventHandler(EscapeMenu);

            playerViews[0] = new PlayerView(new rect_d(400, 300, 800, 600));
            playerViews[1] = new PlayerView(new rect_d(400, 0, 800, 300));
            playerViews[2] = new PlayerView(new rect_d(0, 300, 400, 600));
            playerViews[3] = new PlayerView(new rect_d(0, 0, 400, 300));
        }
예제 #5
0
 public void SetUp()
 {
     playerList = MockRepository.GenerateStub<IPlayerList>();
     playerList.Stub(me => me.Players).Return(new List<IPlayer>());
     stubTexture = MockRepository.GenerateStub<ITexture>();
     _stubTextureBank = MockRepository.GenerateStub<ITextureBank<PlayerTexture>>();
     _stubTextureBank.Stub(x => x[PlayerTexture.Ball]).Return(stubTexture);
     stubSpriteBatch = MockRepository.GenerateStub<ISpriteBatch>();
     stubCamera = MockRepository.GenerateStub<ICamera>();
     stubWeaponDrawer = MockRepository.GenerateStub<IWeaponDrawer>();
     stubBubbleText = MockRepository.GenerateStub<IBubbleTextDrawer>();
     player = MockRepository.GenerateStub<IPlayer>();
     player.Status = PlayerStatus.Alive;
     player.Stub(me => me.PlayerSettings).Return(new NetworkPlayerSettings());
     player.Stub(me => me.Weapons).Return(MockRepository.GenerateStub<IWeapons>());
     playerList.Players.Add(player);
     playerView = new PlayerView(playerList, _stubTextureBank, stubSpriteBatch, stubCamera, stubWeaponDrawer, stubBubbleText);
 }
예제 #6
0
 /*Animation
  * obj - Plaerwiev what we need to move
  * fields - All fields viewer;
  * steps - number of steps from Dice
  * speed - sped of Each movement
  * */
 public void SeverallSteps(PlayerView obj, List <GameFieldViewer> fields, int steps, float speed = 0.1f)
 {
     StartCoroutine(PlayStepAnimation(obj, fields, steps, speed));
 }
예제 #7
0
 void Awake()
 {
     hpDisplay      = FindObjectOfType <PlayerView>();
     gameController = FindObjectOfType <GameController>();
 }
예제 #8
0
 private void OnInstaller(PlayerView playerView, LevelManager levelManager, LevelGenerator levelGenerator, CarBase carBase)
 {
     _playerView     = playerView;
     _levelGenerator = levelGenerator;
     _carBase        = carBase;
 }
예제 #9
0
 private void Awake()
 {
     _view = GetComponent <PlayerView>();
 }
예제 #10
0
 void Awake()
 {
     instance = this;
 }
        private IEnumerator Test_Select()
        {
            PlayerView player = Instantiate(playerPrefab).GetComponent <PlayerView>();

            player.Model = new PlayerModel(new PlayerData()
            {
                Name = "TestPlayer"
            });
            List <CharacterView> characterCollection = new List <CharacterView>();
            CharacterClass       characterClass      = new CharacterClass()
            {
                Name = "TestCharacterClass", HealthPoints = 10, CharacterSprite = "Character_Example_8"
            };

            for (int i = 0; i < 3; i++)
            {
                CharacterView character = Instantiate(characterPrefab).GetComponent <CharacterView>();
                character.Model = new CharacterModel(new CharacterData()
                {
                    Position = new Data.Vector2(i, 0)
                }, characterClass, player.Model, true);
                characterCollection.Add(character);
            }
            player.GetCharacterCollection = () => characterCollection;
            yield return(new WaitForSeconds(1));

            player.Selection = characterCollection.First();
            yield return(new WaitForSeconds(3));

            player.Selection = null;
            yield return(new WaitForSeconds(1));

            player.SelectNext();
            yield return(new WaitForSeconds(1));

            player.SelectNext();
            yield return(new WaitForSeconds(1));

            player.SelectNext();
            yield return(new WaitForSeconds(1));

            player.SelectNext();
            yield return(new WaitForSeconds(1));

            player.SelectNext();
            yield return(new WaitForSeconds(1));

            player.Selection = null;
            yield return(new WaitForSeconds(1));

            player.SelectPrevious();
            yield return(new WaitForSeconds(1));

            player.SelectPrevious();
            yield return(new WaitForSeconds(1));

            player.SelectPrevious();
            yield return(new WaitForSeconds(1));

            player.SelectPrevious();
            yield return(new WaitForSeconds(1));

            player.SelectPrevious();
            yield return(new WaitForSeconds(1));

            player.Selection = null;
            yield return(new WaitForSeconds(1));

            foreach (CharacterView character in characterCollection)
            {
                Destroy(character.gameObject);
            }
            Destroy(player.gameObject);
        }
예제 #12
0
        public Action GetAction(PlayerView playerView, DebugInterface debugInterface)
        {
            Action result = new Action(new System.Collections.Generic.Dictionary <int, Model.EntityAction>());
            int    myId   = playerView.MyId;

            foreach (var entity in playerView.Entities)
            {
                if (entity.PlayerId != myId)
                {
                    continue;
                }
                EntityProperties properties  = playerView.EntityProperties[entity.EntityType];
                MoveAction?      moveAction  = null;
                BuildAction?     buildAction = null;
                if (properties.CanMove)
                {
                    moveAction = new MoveAction(
                        new Vec2Int(playerView.MapSize - 1, playerView.MapSize - 1),
                        true,
                        true
                        );
                }
                else if (properties.Build != null)
                {
                    EntityType entityType   = properties.Build.Value.Options[0];
                    int        currentUnits = 0;
                    foreach (var otherEntity in playerView.Entities)
                    {
                        if (otherEntity.PlayerId != null && otherEntity.PlayerId == myId &&
                            otherEntity.EntityType == entityType)
                        {
                            currentUnits++;
                        }
                    }
                    if ((currentUnits + 1) * playerView.EntityProperties[entityType].PopulationUse <= properties.PopulationProvide)
                    {
                        buildAction = new BuildAction(
                            entityType,
                            new Vec2Int(entity.Position.X + properties.Size, entity.Position.Y + properties.Size - 1)
                            );
                    }
                }
                EntityType[] validAutoAttackTargets;
                if (entity.EntityType == EntityType.BuilderUnit)
                {
                    validAutoAttackTargets = new EntityType[] { EntityType.Resource };
                }
                else
                {
                    validAutoAttackTargets = new EntityType[0];
                }
                result.EntityActions[entity.Id] = new EntityAction(
                    moveAction,
                    buildAction,
                    new AttackAction(
                        null,
                        new AutoAttack(properties.SightRange, validAutoAttackTargets)
                        ),
                    null
                    );
            }
            return(result);
        }
예제 #13
0
 public PlayerController(Player player, PlayerView playerView, PileController pileController) : base(player, playerView, pileController)
 {
     this.player = player;
 }
예제 #14
0
 private void InvaderHitPlayer(InvaderBehaviour invader, PlayerView player)
 {
     _gameNotifications.PlayerDeath();
 }
예제 #15
0
 private void MissileHitPlayer(IMissileView arg1, PlayerView arg2)
 {
     _missileViewProvider.Return(arg1);
     _gameNotifications.PlayerDeath();
 }
예제 #16
0
 private void GetViewReferencesForAnyLoadedGameObjects()
 {
     cameraChaseView = trackGO.GetComponentInChildren <CameraChaseComponentView>();
     playerView      = playerGO.GetComponent <PlayerView>();
 }
예제 #17
0
        //
        // GET: /Player/

        public ActionResult Index()
        {
            try
            {
                if (Session["UserAccountID"] == null)
                {
                    return(RedirectToAction("Validate", "Login"));
                }
                User user = (User)Session["User"];
                ViewData["LoginInfo"] = Utility.BuildUserAccountString(user.Username, Convert.ToString(Session["UserAccountName"]));
                if (user.IsAdmin)
                {
                    ViewData["txtIsAdmin"] = "true";
                }
                else
                {
                    ViewData["txtIsAdmin"] = "false";
                }

                // Initialize or get the page state using session
                PlayerPageState pagestate = GetPageState();

                // Get the account id
                int accountid = 0;
                if (Session["UserAccountID"] != null)
                {
                    accountid = Convert.ToInt32(Session["UserAccountID"]);
                }

                // Set and save the page state to the submitted form values if any values are passed
                if (Request.Form["lstAscDesc"] != null)
                {
                    pagestate.AccountID     = accountid;
                    pagestate.PlayerGroupID = Convert.ToInt32(Request.Form["lstPlayerGroup"].ToString().Trim());
                    pagestate.PlayerName    = Request.Form["txtPlayerName"].ToString().Trim();
                    if (Request.Form["chkIncludeInactive"].ToLower().StartsWith("true"))
                    {
                        pagestate.IncludeInactive = true;
                    }
                    else
                    {
                        pagestate.IncludeInactive = false;
                    }
                    pagestate.SortBy     = Request.Form["lstSortBy"].ToString().Trim();
                    pagestate.AscDesc    = Request.Form["lstAscDesc"].ToString().Trim();
                    pagestate.PageNumber = Convert.ToInt32(Request.Form["txtPageNumber"].ToString().Trim());
                    SavePageState(pagestate);
                }

                // Add the session values to the view data so they can be populated in the form
                ViewData["AccountID"]       = pagestate.AccountID;
                ViewData["PlayerGroupID"]   = pagestate.PlayerGroupID;
                ViewData["PlayerName"]      = pagestate.PlayerName;
                ViewData["IncludeInactive"] = pagestate.IncludeInactive;
                ViewData["SortBy"]          = pagestate.SortBy;
                ViewData["PlayerGroupList"] = new SelectList(BuildPlayerGroupList(true), "Value", "Text", pagestate.PlayerGroupID);
                ViewData["SortByList"]      = new SelectList(BuildSortByList(), "Value", "Text", pagestate.SortBy);
                ViewData["AscDescList"]     = new SelectList(BuildAscDescList(), "Value", "Text", pagestate.AscDesc);

                // Determine asc/desc
                bool isdescending = false;
                if (pagestate.AscDesc.ToLower().StartsWith("d"))
                {
                    isdescending = true;
                }

                // Get a Count of all filtered records
                int recordcount = repository.GetPlayerRecordCount(pagestate.AccountID, pagestate.PlayerGroupID, pagestate.PlayerName, pagestate.IncludeInactive);

                // Determine the page count
                int pagecount = 1;
                if (recordcount > 0)
                {
                    pagecount = recordcount / Constants.PageSize;
                    if (recordcount % Constants.PageSize != 0) // Add a page if there are more records
                    {
                        pagecount = pagecount + 1;
                    }
                }

                // Make sure the current page is not greater than the page count
                if (pagestate.PageNumber > pagecount)
                {
                    pagestate.PageNumber = pagecount;
                    SavePageState(pagestate);
                }

                // Set the page number and account in viewdata
                ViewData["PageNumber"]  = Convert.ToString(pagestate.PageNumber);
                ViewData["PageCount"]   = Convert.ToString(pagecount);
                ViewData["RecordCount"] = Convert.ToString(recordcount);

                // We need to add the player group name
                IEnumerable <Player>   players     = repository.GetPlayerPage(pagestate.AccountID, pagestate.PlayerGroupID, pagestate.PlayerName, pagestate.IncludeInactive, pagestate.SortBy, isdescending, pagestate.PageNumber, pagecount);
                List <PlayerView>      playerviews = new List <PlayerView>();
                IPlayerGroupRepository pgrep       = new EntityPlayerGroupRepository();
                foreach (Player player in players)
                {
                    PlayerView playerview = new PlayerView();
                    playerview.PlayerID          = player.PlayerID;
                    playerview.AccountID         = player.AccountID;
                    playerview.PlayerGroupID     = player.PlayerGroupID;
                    playerview.PlayerName        = player.PlayerName;
                    playerview.PlayerLocation    = player.PlayerLocation;
                    playerview.PlayerDescription = player.PlayerDescription;
                    playerview.IsActive          = player.IsActive;
                    PlayerGroup pg = pgrep.GetPlayerGroup(player.PlayerGroupID);
                    playerview.PlayerGroupName = pg.PlayerGroupName;

                    playerviews.Add(playerview);
                }

                ViewResult result = View(playerviews);
                result.ViewName = "Index";
                return(result);
            }
            catch (Exception ex)
            {
                Helpers.SetupApplicationError("Player", "Index", ex.Message);
                return(RedirectToAction("Index", "ApplicationError"));
            }
        }
예제 #18
0
 void DisablePlayerView(ref PlayerView view)
 {
     view.name.transform.parent.gameObject.SetActive(false);
 }
 private void SetPv(int Obj)
 {
     if (online)
     {
         pv = PhotonView.Find(Obj).GetComponent<PlayerView>();
     }
 }
예제 #20
0
        public void Initialize()
        {
            try
            {
                PlayerLitsener = new Player_Events(ActivityContext, controlView);

                if (ActivityName != "FullScreen")
                {
                    simpleExoPlayerView = ActivityContext.FindViewById <PlayerView>(Resource.Id.player_view);
                    simpleExoPlayerView.SetControllerVisibilityListener(PlayerLitsener);
                    simpleExoPlayerView.RequestFocus();

                    //Player initialize
                    controlView    = simpleExoPlayerView.FindViewById <PlaybackControlView>(Resource.Id.exo_controller);
                    PlayerLitsener = new Player_Events(ActivityContext, controlView);

                    Exo_topLayout     = controlView.FindViewById <LinearLayout>(Resource.Id.topLayout);
                    Exo_back_button   = controlView.FindViewById <ImageView>(Resource.Id.backIcon);
                    Download_icon     = controlView.FindViewById <ImageView>(Resource.Id.Download_icon);
                    mFullScreenIcon   = controlView.FindViewById <ImageView>(Resource.Id.exo_fullscreen_icon);
                    mFullScreenButton = controlView.FindViewById <FrameLayout>(Resource.Id.exo_fullscreen_button);
                    ShareIcon         = controlView.FindViewById <ImageView>(Resource.Id.share_icon);
                    Menue_button      = controlView.FindViewById <FrameLayout>(Resource.Id.exo_menue_button);
                    videoPlayButton   = controlView.FindViewById <ImageButton>(Resource.Id.exo_play);
                    videoResumeButton = controlView.FindViewById <ImageButton>(Resource.Id.exo_pause);

                    MainvideoFrameLayout = ActivityContext.FindViewById <FrameLayout>(Resource.Id.root);
                    MainvideoFrameLayout.SetOnClickListener(this);

                    Loadingprogress_bar = ActivityContext.FindViewById <ProgressBar>(Resource.Id.progress_bar);

                    QualityiconView             = ActivityContext.FindViewById <TextView>(Resource.Id.Qualityicon);
                    ViewsiconView               = ActivityContext.FindViewById <TextView>(Resource.Id.Viewsicon);
                    ShareiconView               = ActivityContext.FindViewById <TextView>(Resource.Id.Shareicon);
                    MoreiconView                = ActivityContext.FindViewById <TextView>(Resource.Id.Moreicon);
                    ShowMoreDiscriptioniconView = ActivityContext.FindViewById <TextView>(Resource.Id.video_ShowDiscription);
                    videoDescriptionLayout      = ActivityContext.FindViewById <LinearLayout>(Resource.Id.videoDescriptionLayout);


                    Share_Button        = ActivityContext.FindViewById <LinearLayout>(Resource.Id.ShareButton);
                    Share_Button.Click += ShareIcon_Click;

                    More_Button        = ActivityContext.FindViewById <LinearLayout>(Resource.Id.moreButton);
                    More_Button.Click += MoreButton_OnClick;

                    Video_Titile           = ActivityContext.FindViewById <TextView>(Resource.Id.video_Titile);
                    Video_QualityTextView  = ActivityContext.FindViewById <TextView>(Resource.Id.QualityTextView);
                    Video_ViewsNumber      = ActivityContext.FindViewById <TextView>(Resource.Id.ViewsNumber);
                    Video_videoDate        = ActivityContext.FindViewById <TextView>(Resource.Id.videoDate);
                    Video_videoDescription = ActivityContext.FindViewById <AutoLinkTextView>(Resource.Id.videoDescriptionTextview);
                    Video_videoCategory    = ActivityContext.FindViewById <TextView>(Resource.Id.videoCategorytextview);

                    Video_Stars = ActivityContext.FindViewById <TextView>(Resource.Id.videoStarstextview);
                    Video_Tag   = ActivityContext.FindViewById <TextView>(Resource.Id.videoTagtextview);

                    TextSanitizerAutoLink = new TextSanitizer(Video_videoDescription, ActivityContext);

                    IMethods.Set_TextViewIcon("1", QualityiconView, IonIcons_Fonts.RibbonA);
                    IMethods.Set_TextViewIcon("1", ViewsiconView, IonIcons_Fonts.Eye);
                    IMethods.Set_TextViewIcon("1", ShareiconView, IonIcons_Fonts.ReplyAll);
                    IMethods.Set_TextViewIcon("1", MoreiconView, IonIcons_Fonts.PlusCircled);
                    IMethods.Set_TextViewIcon("1", ShowMoreDiscriptioniconView, IonIcons_Fonts.ArrowDownB);

                    ShowMoreDiscriptioniconView.Visibility = ViewStates.Gone;

                    videoDescriptionLayout.Visibility = ViewStates.Visible;

                    if (!mFullScreenButton.HasOnClickListeners)
                    {
                        mFullScreenButton.SetOnClickListener(this);
                    }

                    if (!Exo_back_button.HasOnClickListeners)
                    {
                        Exo_back_button.Click += BackIcon_Click;
                        Download_icon.Click   += Download_icon_Click;
                        ShareIcon.Click       += ShareIcon_Click;
                        //Menue_button.Click += Menue_button_Click;

                        Menue_button.Visibility = ViewStates.Gone;
                    }
                }
                else
                {
                    FullscreenplayerView = ActivityContext.FindViewById <PlayerView>(Resource.Id.player_view2);
                    controlView          = FullscreenplayerView.FindViewById <PlaybackControlView>(Resource.Id.exo_controller);
                    PlayerLitsener       = new Player_Events(ActivityContext, controlView);

                    Exo_topLayout     = controlView.FindViewById <LinearLayout>(Resource.Id.topLayout);
                    Exo_back_button   = controlView.FindViewById <ImageView>(Resource.Id.backIcon);
                    Download_icon     = controlView.FindViewById <ImageView>(Resource.Id.Download_icon);
                    mFullScreenIcon   = controlView.FindViewById <ImageView>(Resource.Id.exo_fullscreen_icon);
                    mFullScreenButton = controlView.FindViewById <FrameLayout>(Resource.Id.exo_fullscreen_button);
                    ShareIcon         = controlView.FindViewById <ImageView>(Resource.Id.share_icon);
                    Menue_button      = controlView.FindViewById <FrameLayout>(Resource.Id.exo_menue_button);
                    videoPlayButton   = controlView.FindViewById <ImageButton>(Resource.Id.exo_play);
                    videoResumeButton = controlView.FindViewById <ImageButton>(Resource.Id.exo_pause);

                    if (!mFullScreenButton.HasOnClickListeners)
                    {
                        mFullScreenButton.SetOnClickListener(this);
                    }

                    if (!Exo_back_button.HasOnClickListeners)
                    {
                        Exo_back_button.Click += BackIcon_Click;
                        Download_icon.Click   += Download_icon_Click;
                        ShareIcon.Click       += ShareIcon_Click;
                        //Menue_button.Click += Menue_button_Click;

                        Menue_button.Visibility = ViewStates.Gone;
                    }
                }
            }
            catch (Exception exception)
            {
                Crashes.TrackError(exception);
            }
        }
예제 #21
0
        public bool[] sides = { false, false, true, true }; //It's relative to Side // True means it's stick out


        void Start()
        {
            _view = GetComponent <PlayerView>();
        }
 public override void OnActivatePowerUp(PlayerView player)
 {
     Debug.Log("aaaaa");
     base.OnActivatePowerUp(player);
 }
예제 #23
0
 protected abstract void OnTileVariantExit(PlayerView playerView);
예제 #24
0
        /**
         * @param queuePositionListener A {@link QueuePositionListener} for queue position changes.
         * @param localPlayerView The {@link PlayerView} for local playback.
         * @param castControlView The {@link PlayerControlView} to control remote playback.
         * @param context A {@link Context}.
         * @param castContext The {@link CastContext}.
         */
        public static PlayerManager CreatePlayerManager(IQueuePositionListener queuePositionListener, PlayerView localPlayerView, PlayerControlView castControlView, Context context, CastContext castContext)
        {
            PlayerManager playerManager = new PlayerManager(queuePositionListener, localPlayerView, castControlView, context, castContext);

            playerManager.Init();
            return(playerManager);
        }
예제 #25
0
 public void OnTileExit(PlayerView playerView)
 {
     OnTileVariantExit(playerView);
 }
예제 #26
0
 protected override void onStart()
 {
     base.onStart();
     moveController = GetComponent <MoveController> ();
     viewControl    = GetComponent <PlayerView> ();
 }
예제 #27
0
 public void DebugUpdate(PlayerView playerView, DebugInterface debugInterface)
 {
     debugInterface.Send(new DebugCommand.Clear());
     debugInterface.GetState();
 }
예제 #28
0
        public void UsesCameraCorrectly()
        {
            ICamera camera = new Camera(player, new Vector2(100, 100));
            playerView = new PlayerView(playerList, _stubTextureBank, stubSpriteBatch, camera, stubWeaponDrawer, stubBubbleText);

            playerView.Generate(1f);

            stubSpriteBatch.AssertWasCalled(x => x.Begin(Arg<Matrix>.Is.Equal(camera.TranslationMatrix)));
        }
예제 #29
0
 public Action GetAction(PlayerView playerView, DebugInterface debugInterface)
 {
     return(new Action(new System.Collections.Generic.Dictionary <int, Model.EntityAction>(0)));
 }
예제 #30
0
 public ShootEventArgs(PlayerView player, ProjectileView projectile)
 {
     Player     = player;
     Projectile = projectile;
 }
예제 #31
0
 public override void UpdatePlayerView(PlayerView view)
 {
     throw new NotImplementedException();
 }
예제 #32
0
 // Start is called before the first frame update
 void Start()
 {
     PlayerView       = player.GetComponent <PlayerView>();
     StairInstantiate = Instant.GetComponent <StairInstantiate>();
     Objects          = Stair.GetComponent <Objects>();
 }
예제 #33
0
    public void init()
    {
        _playerView = gameObject.AddComponent<PlayerView>();

        _playerView.init();
    }
예제 #34
0
 void Awake()
 {
     playerInput = GetComponent <PlayerInput>();
     playerMotor = GetComponent <PlayerMotor>();
     playerView  = GetComponent <PlayerView>();
 }
예제 #35
0
        /// <summary>
        /// Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name="e">Event data that describes how this page was reached.  The Parameter
        /// property is typically used to configure the page.</param>
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            _view = e.Parameter as PlayerView;
            _view.setPageRef(this);
            setGameArea(_view.CardsOnTable.Count +1);
            //setCurrentPlayersSettings();
            gridPlayer1.DataContext = _view.CurrentPlayer;
            player1name.Text = _view.CurrentPlayer.Name;
            setHandDisplay();
            //////////////////////////////////////////////////////////////////////////////////7
            gwPl1Hand.CanDragItems = true;
            gwPl1Hand.CanReorderItems = true;
            gwPl1Hand.IsHitTestVisible = true;
            gwPl1Hand.AllowDrop = true;
            ///////////////////////////////////////////////////////////////////////////////////
            if (_view.MoveIndex == _view.CurrentPlayer.Id)
                rect1Action.Visibility = Windows.UI.Xaml.Visibility.Visible;
            else
                rect1Action.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            //display trump
            addImageToCard(_view.Trump);
            vbxTrump.DataContext = _view.Trump;
            imgTrump.Source = _view.Trump.Image.Source;
            
            
            if (_view.OtherPlayers.Count >= 1)
            {
                gridPlayer2.DataContext = _view.OtherPlayers.ElementAt(0);
                player2_name.Text = _view.OtherPlayers.ElementAt(0).Name;
                if (_view.MoveIndex == _view.OtherPlayers.ElementAt(0).Id || _view.HitIndex == _view.OtherPlayers.ElementAt(0).Id)
                    rect2Action.Visibility = Windows.UI.Xaml.Visibility.Visible;
                else
                    rect2Action.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            else
            {
                gridPlayer6.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                gridPlayer5.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                gridPlayer4.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                gridPlayer3.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                gridPlayer2.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            if (_view.OtherPlayers.Count >= 2)
            {
                gridPlayer3.DataContext = _view.OtherPlayers.ElementAt(1);
                player3_name.Text = _view.OtherPlayers.ElementAt(1).Name;
                if (_view.MoveIndex == _view.OtherPlayers.ElementAt(1).Id || _view.HitIndex == _view.OtherPlayers.ElementAt(1).Id)
                    rect3Action.Visibility = Windows.UI.Xaml.Visibility.Visible;
                else
                    rect3Action.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            else
            {
                gridPlayer6.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                gridPlayer5.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                gridPlayer4.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                gridPlayer3.Visibility = Windows.UI.Xaml.Visibility.Collapsed;

            }
            if (_view.OtherPlayers.Count >= 3)
            {
                gridPlayer4.DataContext = _view.OtherPlayers.ElementAt(2);
                player4name.Text = _view.OtherPlayers.ElementAt(2).Name;
                if (_view.MoveIndex == _view.OtherPlayers.ElementAt(2).Id || _view.HitIndex == _view.OtherPlayers.ElementAt(2).Id)
                    rect4Action.Visibility = Windows.UI.Xaml.Visibility.Visible;
                else
                    rect4Action.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            else
            {
                gridPlayer6.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                gridPlayer5.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                gridPlayer4.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            if (_view.OtherPlayers.Count >= 4)
            {
                gridPlayer5.DataContext = _view.OtherPlayers.ElementAt(3);
                player5name.Text = _view.OtherPlayers.ElementAt(3).Name;
                if (_view.MoveIndex == _view.OtherPlayers.ElementAt(3).Id || _view.HitIndex == _view.OtherPlayers.ElementAt(3).Id)
                    rect5Action.Visibility = Windows.UI.Xaml.Visibility.Visible;
                else
                    rect5Action.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            else { 
                gridPlayer6.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                gridPlayer5.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            if (_view.OtherPlayers.Count >= 5)
            {
                gridPlayer6.DataContext = _view.OtherPlayers.ElementAt(4);
                player6name.Text = _view.OtherPlayers.ElementAt(4).Name;
                if (_view.MoveIndex == _view.OtherPlayers.ElementAt(4).Id || _view.HitIndex == _view.OtherPlayers.ElementAt(4).Id)
                    rect6Action.Visibility = Windows.UI.Xaml.Visibility.Visible;
                else
                    rect6Action.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            else { gridPlayer6.Visibility = Windows.UI.Xaml.Visibility.Collapsed; }
        }
예제 #36
0
 public void AddPlayerView(int id, string name)
 {
     var v = playerViews[id] = new PlayerView();
     v.id = id;
     v.PlayerName = name;
 }
예제 #37
0
 public void OnPlayerConstruct(Evt evt)
 {
     player = (PlayerView)evt.Source;
 }
예제 #38
0
        private IEnumerator GenerateAndPlayBotMove(int num_cards_to_pick)
        {
            PlayerView player_view = m_table_view.Players_views [m_curr_player];

            player_view.Timer.fillAmount = 1;
            player_view.ShowHideTimer(true);
            if (ManagerView.Instance.Show_bot_debug)
            {
                player_view.Bot.HighlightAllKnownCards(true);
            }
            // Wait time:
            // For bid: Normal distribution with mean of 4 and the stddev of 1
            // For turn: Triangular distribution between 0 and 3 with most frequent value of 0.5
            float actual_wait_time = 0;

            actual_wait_time = Random.Range(0.5f, TURN_TIME / 2);


            bool time_expired = false;


            float f_start_time = Time.realtimeSinceStartup;

            while ((Time.realtimeSinceStartup < f_start_time + TURN_TIME) && (time_expired == false))
            {
                float temp = (Time.realtimeSinceStartup - f_start_time) / TURN_TIME;

                player_view.Timer.fillAmount = 1 - temp;

                if (Time.realtimeSinceStartup - f_start_time > actual_wait_time)
                {
                    time_expired = true;
                }

                yield return(new WaitForSeconds(0.1f));
            }


            player_view.ShowHideTimer(false);

            List <Card> picked_cards_indexes = new List <Card> ();

            int already_picked_cards = 0;

            int counter = 0;

            bool error = false;

            while (already_picked_cards < num_cards_to_pick && !error)
            {
                counter++;

                if (counter > 500)
                {
                    Debug.Log("ERROR IN GenerateAndPlayBotMove");
                    error = true;
                }


                Card curr_pick = player_view.Bot.PickCards(num_cards_to_pick, already_picked_cards);

                int curr_pick_value = curr_pick.Image_index;

                curr_pick.Open = true;
                yield return(new WaitForSecondsRealtime(CARDS_PICK_DELAY_TIME));

                if (curr_pick_value == SHOW_ALL)
                {
                    Debug.Log("BOT PICKED SHOW ALL");
                    StartCoroutine(ShowAllCards(picked_cards_indexes, curr_pick));

                    yield return(new WaitForSecondsRealtime(2.5f));
                }
                else if (curr_pick_value == POINTS)
                {
                    curr_pick.Matched = true;


                    AddDataToAllBots(curr_pick);

                    yield return(new WaitForSecondsRealtime(0.25f));

                    GameController.Instance.ScoreSpecialCurrentMove(GameController.SHOW_ALL);
                }
                else if (curr_pick_value == SHUFFLE)
                {
                    for (int i = 0; i < picked_cards_indexes.Count; i++)
                    {
                        if (picked_cards_indexes [i].Image_index != GameController.SHUFFLE)
                        {
                            picked_cards_indexes [i].Open = false;
                        }
                    }

                    picked_cards_indexes.Clear();
                    already_picked_cards = 0;

                    StartCoroutine(Shuffle(picked_cards_indexes, curr_pick));
                    yield return(new WaitForSecondsRealtime(1.25f));
                }
                else
                {
                    picked_cards_indexes.Add(curr_pick);
                    already_picked_cards++;
                }
            }


            yield return(new WaitForSecondsRealtime(SEE_CARDS_TIME));

            ScoreCurrentMove(CheckCurrentSelectionMatch(picked_cards_indexes));


            player_view.Bot.HighlightAllKnownCards(false);
            PlayNextTurn();
        }
예제 #39
0
        public Action GetAction(PlayerView playerView, DebugInterface debugInterface)
        {
            if (Params.IsDebug)
            {
                debugInterface.Send(new DebugCommand.SetAutoFlush(true));
            }

            if (playerView.CurrentTick == 10 && playerView.Players.Length == 2)
            {
                Params.RangedBaseBuildingLimit = 35;
                Params.MaxBuilderUnitsCount   += 30;
                Params.MaxRangedUnitsCount    += 20;
                Params.MaxHouseCount          += 10;
            }

            var entityActions = new Dictionary <int, EntityAction>();

            ScoreMap.InitMap(playerView);
            DrawScoreMap(debugInterface);
            IsDanger = DangerCheck();

            // repairing
            Entity? builder     = null;
            Vec2Int?moveTarget  = null;
            int     minDistance = int.MaxValue;

            foreach (Entity entity in playerView.Entities)
            {
                if (entity.PlayerId != ScoreMap.MyId || entity.EntityType != EntityType.BuilderUnit)
                {
                    continue;
                }

                BuilderUnitActions.SetRepair(playerView, entity, entityActions);
                if (!ScoreMap.AnyRepairScoreMoreThanOne || entityActions.ContainsKey(entity.Id))
                {
                    continue;
                }

                var approxTarget = BuilderUnitActions.GetApproxTarget(entity, entityActions);

                var bestTarget = ASearchMove(entity, approxTarget, out var cameFrom, out var costSoFar);
                var cell       = ScoreMap.Get(bestTarget);
                if (cell.RepairScore > 1 && costSoFar[bestTarget] < minDistance)
                {
                    builder     = entity;
                    moveTarget  = GetMoveTarget(builder.Value.Position, bestTarget, cameFrom, Blue, debugInterface);
                    minDistance = costSoFar[bestTarget];
                }
            }

            if (builder != null && moveTarget != null)
            {
                ScoreMap.Set(builder.Value.Position, null);
                ScoreMap.Set(moveTarget.Value, builder.Value);

                var moveAction = new MoveAction(moveTarget.Value, false, false);
                entityActions.Add(builder.Value.Id, new EntityAction(moveAction, null, null, null));
            }

            // building turret
            if ((playerView.Players.Length > 2 || playerView.CurrentTick >= 300) &&
                ScoreMap.MyActiveRangedBases.Count > 0 &&
                (ScoreMap.Limit >= Params.TurretBuildingLimit || playerView.CurrentTick >= 300) &&
                ScoreMap.MyResource >= ScoreMap.TurretProperties.InitialCost &&
                ScoreMap.MyNotActiveTurrets.Count <= 1)
            {
                BuilderUnitActions.SetBuild(EntityType.Turret, ScoreMap.TurretProperties.Size, entityActions, debugInterface);
                ScoreMap.MyResource -= ScoreMap.TurretProperties.InitialCost;
            }

            // building ranged base
            if (ScoreMap.MyActiveRangedBases.Count == 0 &&
                ScoreMap.MyResource >= ScoreMap.RangedBaseProperties.InitialCost &&
                ScoreMap.MyNotActiveRangedBases.Count == 0)
            {
                BuilderUnitActions.SetBuild(EntityType.RangedBase, ScoreMap.RangedBaseProperties.Size, entityActions, debugInterface);
                ScoreMap.MyResource -= ScoreMap.RangedBaseProperties.InitialCost;
            }

            // building house
            if (((ScoreMap.MyActiveRangedBases.Count == 0 &&
                  ScoreMap.Limit >= Params.RangedBaseBuildingLimit &&
                  ScoreMap.MyResource >=
                  ScoreMap.RangedBaseProperties.InitialCost + ScoreMap.HouseProperties.InitialCost) ||

                 ((ScoreMap.MyActiveRangedBases.Count > 0 ||
                   ScoreMap.MyNotActiveRangedBases.Count > 0 ||
                   ScoreMap.Limit < Params.RangedBaseBuildingLimit) &&
                  ScoreMap.MyResource >= ScoreMap.HouseProperties.InitialCost)
                 ) &&
                ScoreMap.Limit + 10 >= ScoreMap.AvailableLimit &&
                ScoreMap.MyNotActiveHouses.Count <= 1 &&
                ScoreMap.MyNotActiveHouses.Count + ScoreMap.MyActiveHouses.Count < Params.MaxHouseCount)
            {
                BuilderUnitActions.SetBuild(EntityType.House, ScoreMap.HouseProperties.Size, entityActions, debugInterface);
                ScoreMap.MyResource -= ScoreMap.HouseProperties.InitialCost;
            }

            foreach (Entity entity in playerView.Entities)
            {
                if (entity.PlayerId != ScoreMap.MyId)
                {
                    continue;
                }

                switch (entity.EntityType)
                {
                case EntityType.BuilderUnit:
                {
                    BuilderUnitActions.SetAttack(entity, entityActions);
                    var approxTarget = BuilderUnitActions.GetApproxTarget(entity, entityActions);
                    SetMoveAction(entity, approxTarget, entityActions, debugInterface);
                    continue;
                }

                case EntityType.MeleeUnit:
                {
                    CombatUnitAction.SetAttack(entity, 1, 1, entityActions);
                    var approxTarget = CombatUnitAction.GetAttackTarget(entity, entityActions);
                    SetMoveAction(entity, approxTarget, entityActions, debugInterface);
                    continue;
                }

                case EntityType.RangedUnit:
                {
                    CombatUnitAction.SetAttack(entity, 5, 1, entityActions);
                    var approxTarget = CombatUnitAction.GetAttackTarget(entity, entityActions);
                    SetMoveAction(entity, approxTarget, entityActions, debugInterface);
                    continue;
                }

                case EntityType.Turret:
                {
                    if (!entity.Active)
                    {
                        continue;
                    }

                    CombatUnitAction.SetAttack(entity, 5, 2, entityActions);
                    continue;
                }

                case EntityType.BuilderBase:
                {
                    int unitCost = ScoreMap.BuilderUnitProperties.InitialCost + ScoreMap.MyBuilderUnits.Count;

                    if ((IsDanger && ScoreMap.MyResource >= unitCost * 2 ||
                         !IsDanger && ScoreMap.MyResource >= unitCost) &&
                        ScoreMap.MyBuilderUnits.Count < ScoreMap.BuilderUnitTargets.Count &&
                        ScoreMap.MyBuilderUnits.Count < Params.MaxBuilderUnitsCount)
                    {
                        var approxTarget = BuilderUnitActions.GetApproxTarget(entity, entityActions);
                        SetBuildUnitAction(entity, approxTarget, EntityType.BuilderUnit, unitCost, entityActions);
                    }

                    if (!entityActions.ContainsKey(entity.Id))
                    {
                        entityActions.Add(entity.Id, new EntityAction(null, null, null, null));
                    }

                    continue;
                }

                case EntityType.MeleeBase:
                {
                    int unitCost = ScoreMap.MeleeUnitProperties.InitialCost + ScoreMap.MyMeleeUnits.Count;

                    if ((IsDanger && ScoreMap.MyResource >= unitCost ||
                         !IsDanger && ScoreMap.MyResource >= unitCost * 2) &&
                        ScoreMap.MyRangedUnits.Count * 2 >= Params.MaxRangedUnitsCount &&
                        ScoreMap.MyMeleeUnits.Count < Params.MaxMeleeUnitsCount)
                    {
                        var approxTarget = CombatUnitAction.GetAttackTarget(entity, entityActions);
                        SetBuildUnitAction(entity, approxTarget, EntityType.MeleeUnit, unitCost, entityActions);
                    }

                    if (!entityActions.ContainsKey(entity.Id))
                    {
                        entityActions.Add(entity.Id, new EntityAction(null, null, null, null));
                    }

                    continue;
                }

                case EntityType.RangedBase:
                {
                    if (!entity.Active)
                    {
                        continue;
                    }

                    int unitCost = ScoreMap.RangedUnitProperties.InitialCost + ScoreMap.MyRangedUnits.Count;

                    if ((IsDanger && ScoreMap.MyResource >= unitCost ||
                         !IsDanger && ScoreMap.MyResource >= unitCost * 3) &&
                        ScoreMap.MyRangedUnits.Count < Params.MaxRangedUnitsCount)
                    {
                        var approxTarget = CombatUnitAction.GetAttackTarget(entity, entityActions);
                        SetBuildUnitAction(entity, approxTarget, EntityType.RangedUnit, unitCost, entityActions);
                    }

                    if (!entityActions.ContainsKey(entity.Id))
                    {
                        entityActions.Add(entity.Id, new EntityAction(null, null, null, null));
                    }

                    continue;
                }
                }
            }

            return(new Action(entityActions));
        }
예제 #40
0
 public void AddPlayerView(int id, string _name)
 {
     print("AddPlayerView" + id + " " + _name);
     var v = playerViews[id] = new PlayerView();
     v.id = id;
     v.PlayerName = _name;
 }
예제 #41
0
        public void Scan(PlayerView view)
        {
            Me                = view.Players.Single(p => p.Id == view.MyId);
            EnemyPlayers      = view.Players.Where(p => p.Id != view.MyId).ToList();
            SpiceMilange      = view.Entities.Where(e => e.EntityType == EntityType.Resource).ToList();
            BusySpiceMilange  = new List <Entity>();
            EnemyEntities     = view.Entities.Where(e => e.PlayerId != view.MyId && e.EntityType != EntityType.Resource).ToList();
            MyEntities        = view.Entities.Where(e => e.PlayerId == view.MyId).ToList();
            MyBuildingsBroken = MyBuildings.Where(b => b.Health < view.EntityProperties.Single(ep => ep.Key == b.EntityType).Value.MaxHealth).ToList();
            MyUnitsBroken     = MyUnits.Where(b => b.Health < view.EntityProperties.Single(ep => ep.Key == b.EntityType).Value.MaxHealth).ToList();
            // MyUnitsBusyWorkers = new List<Entity>();

            // todo delete -1 in another round
            HouseBuildingCost   = view.EntityProperties.Single(ep => ep.Key == EntityType.House).Value.InitialCost + MyBuildingsHouses.Count();
            WorkersBuildingCost = view.EntityProperties.Single(ep => ep.Key == EntityType.BuilderBase).Value.InitialCost + MyBuildingsWorkers.Count() - 1;
            RangedBuildingCost  = view.EntityProperties.Single(ep => ep.Key == EntityType.RangedBase).Value.InitialCost + MyBuildingsRanged.Count() - 1;
            MeleeBuildingCost   = view.EntityProperties.Single(ep => ep.Key == EntityType.MeleeBase).Value.InitialCost + MyBuildingsMelees.Count() - 1;
            WallBuildingCost    = view.EntityProperties.Single(ep => ep.Key == EntityType.Wall).Value.InitialCost + MyBuildingsWalls.Count();
            WorkerUnitCost      = view.EntityProperties.Single(ep => ep.Key == EntityType.BuilderUnit).Value.InitialCost + MyUnitsWorkers.Count() - 1;
            RangedUnitCost      = view.EntityProperties.Single(ep => ep.Key == EntityType.RangedUnit).Value.InitialCost + MyUnitsRanged.Count() - 1;
            MeleeUnitCost       = view.EntityProperties.Single(ep => ep.Key == EntityType.MeleeUnit).Value.InitialCost + MyUnitsMelees.Count() - 1;
            TurretUnitCost      = view.EntityProperties.Single(ep => ep.Key == EntityType.Turret).Value.InitialCost + MyUnitsTurrets.Count() - 1;

            // SquareOfMyInterests = new Vec2Int(MyEntities.Max(e => e.Position.X) + 1,
            //                                   MyEntities.Max(e => e.Position.Y) + 1);
            SquareOfMyInterests = new Vec2Int(35, 35);
            PopulationProvide   = 0;
            PopulationUse       = 0;
            foreach (var entity in MyEntities)
            {
                PopulationProvide += view.EntityProperties.Single(ep => ep.Key == entity.EntityType).Value.PopulationProvide;
                PopulationUse     += view.EntityProperties.Single(ep => ep.Key == entity.EntityType).Value.PopulationUse;
            }

            NotFreePoints = new List <Vec2Int>();
            foreach (var entity in view.Entities)
            {
                var size = view.EntityProperties.Single(ep => ep.Key == entity.EntityType).Value.Size;

                if (MyBuildings.Contains(entity))
                {
                    for (var x = 0; x < size + 2; x++)
                    {
                        for (var y = 0; y < size + 2; y++)
                        {
                            var _x = entity.Position.X + x - 1;
                            var _y = entity.Position.Y + y - 1;
                            NotFreePoints.CheckPointInsideAndSave(_x, _y);
                        }
                    }
                }
                else
                {
                    for (var x = 0; x < size; x++)
                    {
                        for (var y = 0; y < size; y++)
                        {
                            NotFreePoints.Add(new Vec2Int(entity.Position.X + x,
                                                          entity.Position.Y + y));
                        }
                    }
                }
            }

            ChooseBehavior();
        }