Beispiel #1
0
 public virtual void MarkForRemovalIfEmpty()
 {
     if (participants.Count() == 0)
     {
         readyForRemoval.Value = true;
     }
 }
 public void updateWhenNotCurrentLocation(Building parentBuilding, GameTime time)
 {
     if (!Game1.currentLocation.Equals(this))
     {
         for (int i = animals.Count() - 1; i >= 0; i--)
         {
             animals.Pairs.ElementAt(i).Value.updateWhenNotCurrentLocation(parentBuilding, time, this);
         }
     }
 }
Beispiel #3
0
        public void Update()
        {
            requestMovieEndEvent.Poll();
            endMovieEvent.Poll();
            festivalPropRemovalEvent.Poll();
            demolishStableEvent.Poll();
            requestSpouseSleepEvent.Poll();
            requestPetWarpHomeEvent.Poll();
            grangeMutex.Update(Game1.getOnlineFarmers());
            demolishLock.Update();
            buildLock.Update(Game1.getOnlineFarmers());
            movieMutex.Update(Game1.getOnlineFarmers());
            if (grangeMutex.IsLockHeld() && Game1.activeClickableMenu == null)
            {
                grangeMutex.ReleaseLock();
            }
            foreach (ReadyCheck value in readyChecks.Values)
            {
                value.Update();
            }
            if (Game1.IsMasterGame && proposals.Count() > 0)
            {
                proposals.Filter((KeyValuePair <long, Proposal> pair) => playerIsOnline(pair.Key) && playerIsOnline(pair.Value.receiver.UID));
            }
            Proposal proposal = GetIncomingProposal();

            if (proposal != null && proposal.canceled.Value)
            {
                proposal.cancelConfirmed.Value = true;
            }
            if (Game1.dialogueUp)
            {
                return;
            }
            if (proposal != null)
            {
                if (!handleIncomingProposal(proposal))
                {
                    proposal.responseMessageKey.Value = genderedKey("Strings\\UI:Proposal_PlayerBusy", Game1.player);
                    proposal.response.Value           = ProposalResponse.Rejected;
                }
            }
            else if (Game1.activeClickableMenu == null && GetOutgoingProposal() != null)
            {
                Game1.activeClickableMenu = new PendingProposalDialog();
            }
        }
        public void Draw(SpriteBatch b, Vector2 draw_position, float draw_scale = 4f, float draw_layer = 0.45f, HorizontalAlignment horizontal_origin = HorizontalAlignment.Left, VerticalAlignment vertical_origin = VerticalAlignment.Top)
        {
            float y_offset_per_entry = 12f;

            if (displayMode == DisplayMode.Icons && (float)largestSpriteHeight > y_offset_per_entry)
            {
                y_offset_per_entry = largestSpriteHeight;
            }
            if (horizontal_origin == HorizontalAlignment.Right)
            {
                float longest_string = 0f;
                if (displayMode == DisplayMode.Icons)
                {
                    draw_position.X -= (float)largestSpriteWidth * draw_scale;
                }
                else
                {
                    foreach (Farmer farmer2 in _sortedFarmers)
                    {
                        if (_formattedStatusList.ContainsKey(farmer2.UniqueMultiplayerID))
                        {
                            float string_length = Game1.dialogueFont.MeasureString(_formattedStatusList[farmer2.UniqueMultiplayerID]).X;
                            if (longest_string < string_length)
                            {
                                longest_string = string_length;
                            }
                        }
                    }
                    draw_position.X -= (longest_string + 16f) * draw_scale;
                }
            }
            if (vertical_origin == VerticalAlignment.Bottom)
            {
                draw_position.Y -= y_offset_per_entry * (float)_statusList.Count() * draw_scale;
            }
            foreach (Farmer farmer in _sortedFarmers)
            {
                float sort_direction = ((!Game1.isUsingBackToFrontSorting) ? 1 : (-1));
                if (_formattedStatusList.ContainsKey(farmer.UniqueMultiplayerID))
                {
                    Vector2 draw_offset = Vector2.Zero;
                    farmer.FarmerRenderer.drawMiniPortrat(b, draw_position, draw_layer, draw_scale * 0.75f, 2, farmer);
                    if (displayMode == DisplayMode.Icons && _iconDefinitions.ContainsKey(_formattedStatusList[farmer.UniqueMultiplayerID]))
                    {
                        draw_offset.X += 12f * draw_scale;
                        KeyValuePair <string, Rectangle> sprite_definition = _iconDefinitions[_formattedStatusList[farmer.UniqueMultiplayerID]];
                        Rectangle currentSrcRect = sprite_definition.Value;
                        currentSrcRect.Y = (int)(Game1.currentGameTime.TotalGameTime.TotalMilliseconds % (double)(iconAnimationFrames * 100) / 100.0) * 16;
                        b.Draw(_iconSprites[sprite_definition.Key], draw_position + draw_offset, currentSrcRect, Color.White, 0f, Vector2.Zero, draw_scale, SpriteEffects.None, draw_layer - 0.0001f * sort_direction);
                    }
                    else
                    {
                        draw_offset.X += 16f * draw_scale;
                        draw_offset.Y += 2f * draw_scale;
                        string drawn_string = _formattedStatusList[farmer.UniqueMultiplayerID];
                        b.DrawString(Game1.dialogueFont, drawn_string, draw_position + draw_offset + Vector2.One * draw_scale, Color.Black, 0f, Vector2.Zero, draw_scale / 4f, SpriteEffects.None, draw_layer - 0.0001f * sort_direction);
                        b.DrawString(Game1.dialogueFont, drawn_string, draw_position + draw_offset, Color.White, 0f, Vector2.Zero, draw_scale / 4f, SpriteEffects.None, draw_layer);
                    }
                    draw_position.Y += y_offset_per_entry * draw_scale;
                }
            }
        }
Beispiel #5
0
        public void Update()
        {
            requestLeoMove.Poll();
            requestMovieEndEvent.Poll();
            endMovieEvent.Poll();
            ringPhoneEvent.Poll();
            festivalPropRemovalEvent.Poll();
            demolishStableEvent.Poll();
            requestSpouseSleepEvent.Poll();
            requestHorseWarpEvent.Poll();
            kickOutOfMinesEvent.Poll();
            requestPetWarpHomeEvent.Poll();
            requestNutDrop.Poll();
            requestAddCharacterEvent.Poll();
            addCharacterEvent.Poll();
            addQiGemsToTeam.Poll();
            grangeMutex.Update(Game1.getOnlineFarmers());
            returnedDonationsMutex.Update(Game1.getOnlineFarmers());
            ordersBoardMutex.Update(Game1.getOnlineFarmers());
            qiChallengeBoardMutex.Update(Game1.getOnlineFarmers());
            junimoChestMutex.Update(Game1.getOnlineFarmers());
            demolishLock.Update();
            buildLock.Update(Game1.getOnlineFarmers());
            movieMutex.Update(Game1.getOnlineFarmers());
            goldenCoconutMutex.Update(Game1.getOnlineFarmers());
            if (grangeMutex.IsLockHeld() && Game1.activeClickableMenu == null)
            {
                grangeMutex.ReleaseLock();
            }
            foreach (SpecialOrder specialOrder in specialOrders)
            {
                specialOrder.Update();
            }
            foreach (ReadyCheck value in readyChecks.Values)
            {
                value.Update();
            }
            if (Game1.IsMasterGame && proposals.Count() > 0)
            {
                proposals.Filter((KeyValuePair <long, Proposal> pair) => playerIsOnline(pair.Key) && playerIsOnline(pair.Value.receiver.UID));
            }
            Proposal proposal = GetIncomingProposal();

            if (proposal != null && proposal.canceled.Value)
            {
                proposal.cancelConfirmed.Value = true;
            }
            if (Game1.dialogueUp)
            {
                return;
            }
            if (proposal != null)
            {
                if (!handleIncomingProposal(proposal))
                {
                    proposal.responseMessageKey.Value = genderedKey("Strings\\UI:Proposal_PlayerBusy", Game1.player);
                    proposal.response.Value           = ProposalResponse.Rejected;
                }
            }
            else if (Game1.activeClickableMenu == null && GetOutgoingProposal() != null)
            {
                Game1.activeClickableMenu = new PendingProposalDialog();
            }
        }
Beispiel #6
0
 public bool HasSittingFarmers()
 {
     return(sittingFarmers.Count() > 0);
 }