public virtual void UpdateEvenIfFarmerIsntHere(GameTime time) { animationEvent.Poll(); upgradeCompleteEvent.Poll(); upgradeMutex.Update(locationRef.Value); if (!Game1.IsMasterGame) { return; } if (stateTimer > 0f) { stateTimer -= (float)time.ElapsedGameTime.TotalSeconds; } if ((UpgradeState)currentState == UpgradeState.StartBuilding && stateTimer <= 0f) { currentState.Value = UpgradeState.Building; stateTimer = 5f; if ((string)upgradeName == "Hut") { stateTimer = 0.1f; } } if ((UpgradeState)currentState == UpgradeState.Building && stateTimer <= 0f) { ApplyUpgrade(); currentState.Value = UpgradeState.Complete; upgradeMutex.ReleaseLock(); upgradeCompleteEvent.Fire(); } }
public override void UpdateWhenCurrentLocation(GameTime time) { base.UpdateWhenCurrentLocation(time); safariGuyMutex.Update(this); if (safariGuy != null) { safariGuy.update(time, this); speakerTimer -= (float)time.ElapsedGameTime.TotalMilliseconds; if (speakerTimer <= 0f) { speakerTimer = 600f; temporarySprites.Add(new TemporaryAnimatedSprite("LooseSprites\\Cursors2", new Microsoft.Xna.Framework.Rectangle(211, 161, 5, 5), new Vector2(74.75f, 20.75f) * 4f, flipped: false, 0f, Color.White) { scale = 5f, scaleChange = -0.05f, motion = new Vector2(0.125f, 0.125f), animationLength = 1, totalNumberOfLoops = 1, interval = 400f, layerDepth = 1f }); } } if (Game1.currentLocation == this && _shouldTriggerFinalCutscene && Game1.activeClickableMenu == null) { _triggerFinaleCutsceneActual(); } }
public override void update(GameTime time, GameLocation location) { base.update(time, location); petAnimationEvent.Poll(); if (isSleepingOnFarmerBed.Value && CurrentBehavior != 1 && Game1.IsMasterGame) { isSleepingOnFarmerBed.Value = false; UpdateSleepingOnBed(); } if (base.currentLocation == null) { base.currentLocation = location; } mutex.Update(location); if (!Game1.eventUp) { if (_currentBehavior != CurrentBehavior) { _OnNewBehavior(); } RunState(time); if (Game1.IsMasterGame && Sprite.CurrentAnimation == null) { MovePosition(time, Game1.viewport, location); } flip = false; if (FacingDirection == 3 && Sprite.CurrentFrame >= 16) { flip = true; } } }
public override void updateEvenIfFarmerIsntHere(GameTime time, bool skipWasUpdatedFlush = false) { base.updateEvenIfFarmerIsntHere(time, skipWasUpdatedFlush); inventoryMutex.Update(Game1.getOnlineFarmers()); if (inventoryMutex.IsLockHeld() && !(Game1.activeClickableMenu is ItemGrabMenu)) { inventoryMutex.ReleaseLock(); } }
public override void updateEvenIfFarmerIsntHere(GameTime time, bool ignoreWasUpdatedFlush = false) { base.updateEvenIfFarmerIsntHere(time, ignoreWasUpdatedFlush); bundleMutex.Update(this); if (bundleMutex.IsLockHeld() && Game1.activeClickableMenu == null) { bundleMutex.ReleaseLock(); } restoreAreaCutsceneEvent.Poll(); }
public override void update(GameTime time, GameLocation location) { setStateEvent.Poll(); mutex.Update(location); base.update(time, location); if (base.Age >= 2 && (Game1.IsMasterGame || base.Age < 3)) { MovePosition(time, Game1.viewport, location); } }
public virtual void Update() { _AddSpecialRulesIfNecessary(); if (_objectiveRegistrationDirty) { _objectiveRegistrationDirty = false; _UpdateObjectiveRegistration(); } if (!readyForRemoval.Value) { if (questState.Value == QuestState.InProgress && !participants.ContainsKey(Game1.player.UniqueMultiplayerID)) { participants[Game1.player.UniqueMultiplayerID] = true; } else if (questState.Value == QuestState.Complete) { if (unclaimedRewards.ContainsKey(Game1.player.UniqueMultiplayerID)) { unclaimedRewards.Remove(Game1.player.UniqueMultiplayerID); Game1.stats.QuestsCompleted++; Game1.playSound("questcomplete"); Game1.dayTimeMoneyBox.questsDirty = true; foreach (OrderReward reward in rewards) { reward.Grant(); } } if (participants.ContainsKey(Game1.player.UniqueMultiplayerID) && GetMoneyReward() <= 0) { RemoveFromParticipants(); } } } donateMutex.Update(Game1.getOnlineFarmers()); if (donateMutex.IsLockHeld() && Game1.activeClickableMenu == null) { donateMutex.ReleaseLock(); } if (Game1.activeClickableMenu == null) { _highlightLookup = null; } if (Game1.IsMasterGame && questState.Value != 0) { MarkForRemovalIfEmpty(); if (readyForRemoval.Value) { _RemoveSpecialRuleIfNecessary(); Game1.player.team.specialOrders.Remove(this); } } }
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 override void updateWhenCurrentLocation(GameTime time, GameLocation environment) { FixLidFrame(); base.updateWhenCurrentLocation(time, environment); Mutex.Update(environment); if (FrameCounter.Value > -1 && _currentLidFrame <= (int)TileIndex.Freezer_LidEnd) { --FrameCounter.Value; if (FrameCounter.Value > 0 || !Mutex.IsLockHeld()) { return; } if (_currentLidFrame == (int)TileIndex.Freezer_LidEnd) { Game1.activeClickableMenu = _GetFreezerMenu(); FrameCounter.Value = -1; } else { FrameCounter.Value = 5; ++_currentLidFrame; } } else { if (FrameCounter.Value != -1 || _currentLidFrame <= (int)TileIndex.Freezer_LidStart || (Game1.activeClickableMenu != null || !Mutex.IsLockHeld())) { return; } Mutex.ReleaseLock(); _currentLidFrame = (int)TileIndex.Freezer_LidEnd; FrameCounter.Value = 2; environment.localSound("doorCreakReverse"); } }
public override bool tickUpdate(GameTime time, Vector2 tileLocation, GameLocation location) { if (shakeTimer > 0f) { shakeTimer -= time.ElapsedGameTime.Milliseconds; } if ((int)size == 4) { uniqueSpawnMutex.Update(location); } alpha = Math.Min(1f, alpha + 0.05f); if (maxShake > 0f) { if (shakeLeft) { shakeRotation -= (float)Math.PI / 200f; if (shakeRotation <= 0f - maxShake) { shakeLeft = false; } } else { shakeRotation += (float)Math.PI / 200f; if (shakeRotation >= maxShake) { shakeLeft = true; } } } if (maxShake > 0f) { maxShake = Math.Max(0f, maxShake - 0.00306796166f); } return(false); }
public override void updateWhenCurrentLocation(GameTime time, GameLocation environment) { itemModifyMutex.Update(environment); }
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(); } }
public override void update(GameTime time, GameLocation location) { base.currentLocation = location; mutex.Update(location); squeezingThroughGate = false; faceTowardFarmer = false; faceTowardFarmerTimer = -1; Sprite.loop = rider != null && !rider.hidden; if (rider != null && (bool)rider.hidden) { return; } if (rider != null && rider.isAnimatingMount) { rider.showNotCarrying(); } if ((bool)mounting) { if (rider == null || !rider.IsLocalPlayer) { return; } if (rider.mount != null) { mounting.Value = false; rider.isAnimatingMount = false; rider = null; Halt(); farmerPassesThrough = false; return; } if (rider.Position.X < (float)(GetBoundingBox().X + 16 - 4)) { rider.position.X += 4f; } else if (rider.Position.X > (float)(GetBoundingBox().X + 16 + 4)) { rider.position.X -= 4f; } if (rider.getStandingY() < GetBoundingBox().Y - 4) { rider.position.Y += 4f; } else if (rider.getStandingY() > GetBoundingBox().Y + 4) { rider.position.Y -= 4f; } if (rider.yJumpOffset >= -8 && rider.yJumpVelocity <= 0f) { Halt(); Sprite.loop = true; base.currentLocation.characters.Remove(this); rider.mount = this; rider.freezePause = -1; mounting.Value = false; rider.isAnimatingMount = false; rider.canMove = true; if (FacingDirection == 1) { rider.xOffset += 8f; } } } else if ((bool)dismounting) { if (rider == null || !rider.IsLocalPlayer) { Halt(); return; } if (rider.isAnimatingMount) { rider.faceDirection(FacingDirection); } Vector2 targetPosition = new Vector2(dismountTile.X * 64f + 32f - (float)(rider.GetBoundingBox().Width / 2), dismountTile.Y * 64f + 4f); if (Math.Abs(rider.Position.X - targetPosition.X) > 4f) { if (rider.Position.X < targetPosition.X) { rider.position.X += Math.Min(4f, targetPosition.X - rider.Position.X); } else if (rider.Position.X > targetPosition.X) { rider.position.X += Math.Max(-4f, targetPosition.X - rider.Position.X); } } if (Math.Abs(rider.Position.Y - targetPosition.Y) > 4f) { if (rider.Position.Y < targetPosition.Y) { rider.position.Y += Math.Min(4f, targetPosition.Y - rider.Position.Y); } else if (rider.Position.Y > targetPosition.Y) { rider.position.Y += Math.Max(-4f, targetPosition.Y - rider.Position.Y); } } if (rider.yJumpOffset >= 0 && rider.yJumpVelocity <= 0f) { rider.position.Y += 8f; rider.position.X = targetPosition.X; int tries = 0; while (rider.currentLocation.isCollidingPosition(rider.GetBoundingBox(), Game1.viewport, isFarmer: true, 0, glider: false, rider) && tries < 6) { tries++; rider.position.Y -= 4f; } if (tries == 6) { rider.Position = base.Position; dismounting.Value = false; rider.isAnimatingMount = false; rider.freezePause = -1; rider.canMove = true; return; } dismount(); } } else if (rider == null && FacingDirection != 2 && Sprite.CurrentAnimation == null && Game1.random.NextDouble() < 0.002) { Sprite.loop = false; switch (FacingDirection) { case 0: Sprite.setCurrentAnimation(new List <FarmerSprite.AnimationFrame> { new FarmerSprite.AnimationFrame(25, Game1.random.Next(250, 750)), new FarmerSprite.AnimationFrame(14, 10) }); break; case 1: Sprite.setCurrentAnimation(new List <FarmerSprite.AnimationFrame> { new FarmerSprite.AnimationFrame(21, 100), new FarmerSprite.AnimationFrame(22, 100), new FarmerSprite.AnimationFrame(23, 400), new FarmerSprite.AnimationFrame(24, 400), new FarmerSprite.AnimationFrame(23, 400), new FarmerSprite.AnimationFrame(24, 400), new FarmerSprite.AnimationFrame(23, 400), new FarmerSprite.AnimationFrame(24, 400), new FarmerSprite.AnimationFrame(23, 400), new FarmerSprite.AnimationFrame(22, 100), new FarmerSprite.AnimationFrame(21, 100) }); break; case 3: Sprite.setCurrentAnimation(new List <FarmerSprite.AnimationFrame> { new FarmerSprite.AnimationFrame(21, 100, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(22, 100, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(23, 100, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(24, 400, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(23, 400, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(24, 400, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(23, 400, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(24, 400, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(23, 400, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(22, 100, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(21, 100, secondaryArm: false, flip: true) }); break; } } else if (rider != null) { if (FacingDirection != rider.FacingDirection || ridingAnimationDirection != FacingDirection) { Sprite.StopAnimation(); faceDirection(rider.FacingDirection); } bool num = (rider.movementDirections.Any() && rider.CanMove) || rider.position.Field.IsInterpolating(); SyncPositionToRider(); if (num && Sprite.CurrentAnimation == null) { AnimatedSprite.endOfAnimationBehavior mountFootstep = delegate { if (rider != null) { string a = rider.currentLocation.doesTileHaveProperty((int)rider.getTileLocation().X, (int)rider.getTileLocation().Y, "Type", "Back"); if (!(a == "Stone")) { if (a == "Wood") { if (rider.ShouldHandleAnimationSound()) { rider.currentLocation.localSoundAt("woodyStep", getTileLocation()); } if (rider == Game1.player) { Rumble.rumble(0.1f, 50f); } } else { if (rider.ShouldHandleAnimationSound()) { rider.currentLocation.localSoundAt("thudStep", getTileLocation()); } if (rider == Game1.player) { Rumble.rumble(0.3f, 50f); } } } else { if (rider.ShouldHandleAnimationSound()) { rider.currentLocation.localSoundAt("stoneStep", getTileLocation()); } if (rider == Game1.player) { Rumble.rumble(0.1f, 50f); } } } }; if (FacingDirection == 1) { Sprite.setCurrentAnimation(new List <FarmerSprite.AnimationFrame> { new FarmerSprite.AnimationFrame(8, 70), new FarmerSprite.AnimationFrame(9, 70, secondaryArm: false, flip: false, mountFootstep), new FarmerSprite.AnimationFrame(10, 70, secondaryArm: false, flip: false, mountFootstep), new FarmerSprite.AnimationFrame(11, 70, secondaryArm: false, flip: false, mountFootstep), new FarmerSprite.AnimationFrame(12, 70), new FarmerSprite.AnimationFrame(13, 70) }); } else if (FacingDirection == 3) { Sprite.setCurrentAnimation(new List <FarmerSprite.AnimationFrame> { new FarmerSprite.AnimationFrame(8, 70, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(9, 70, secondaryArm: false, flip: true, mountFootstep), new FarmerSprite.AnimationFrame(10, 70, secondaryArm: false, flip: true, mountFootstep), new FarmerSprite.AnimationFrame(11, 70, secondaryArm: false, flip: true, mountFootstep), new FarmerSprite.AnimationFrame(12, 70, secondaryArm: false, flip: true), new FarmerSprite.AnimationFrame(13, 70, secondaryArm: false, flip: true) }); } else if (FacingDirection == 0) { Sprite.setCurrentAnimation(new List <FarmerSprite.AnimationFrame> { new FarmerSprite.AnimationFrame(15, 70), new FarmerSprite.AnimationFrame(16, 70, secondaryArm: false, flip: false, mountFootstep), new FarmerSprite.AnimationFrame(17, 70, secondaryArm: false, flip: false, mountFootstep), new FarmerSprite.AnimationFrame(18, 70, secondaryArm: false, flip: false, mountFootstep), new FarmerSprite.AnimationFrame(19, 70), new FarmerSprite.AnimationFrame(20, 70) }); } else if (FacingDirection == 2) { Sprite.setCurrentAnimation(new List <FarmerSprite.AnimationFrame> { new FarmerSprite.AnimationFrame(1, 70), new FarmerSprite.AnimationFrame(2, 70, secondaryArm: false, flip: false, mountFootstep), new FarmerSprite.AnimationFrame(3, 70, secondaryArm: false, flip: false, mountFootstep), new FarmerSprite.AnimationFrame(4, 70, secondaryArm: false, flip: false, mountFootstep), new FarmerSprite.AnimationFrame(5, 70), new FarmerSprite.AnimationFrame(6, 70) }); } ridingAnimationDirection = FacingDirection; } if (!num) { Sprite.StopAnimation(); faceDirection(rider.FacingDirection); } } if (FacingDirection == 3) { drawOffset.Set(Vector2.Zero); } else { drawOffset.Set(new Vector2(-16f, 0f)); } flip = FacingDirection == 3; base.update(time, location); }
public override void updateEvenIfFarmerIsntHere(GameTime time, bool skipWasUpdatedFlush = false) { mutex.Update(this); base.updateEvenIfFarmerIsntHere(time, skipWasUpdatedFlush); }
public override void updateWhenCurrentLocation(GameTime time, GameLocation environment) { fixLidFrame(); mutex.Update(environment); if (shakeTimer > 0) { shakeTimer -= time.ElapsedGameTime.Milliseconds; if (shakeTimer <= 0) { health = 10; } } if ((bool)playerChest) { if ((int)frameCounter > -1 && currentLidFrame < getLastLidFrame() + 1) { frameCounter.Value--; if ((int)frameCounter <= 0 && mutex.IsLockHeld()) { if (currentLidFrame == getLastLidFrame()) { Game1.activeClickableMenu = new ItemGrabMenu(items, reverseGrab: false, showReceivingMenu: true, InventoryMenu.highlightAllItems, grabItemFromInventory, null, grabItemFromChest, snapToBottom: false, canBeExitedWithKey: true, playRightClickSound: true, allowRightClick: true, showOrganizeButton: true, 1, fridge ? null : this, -1, this); frameCounter.Value = -1; } else { frameCounter.Value = 5; currentLidFrame++; } } } else if ((int)frameCounter == -1 && currentLidFrame > (int)startingLidFrame && Game1.activeClickableMenu == null && mutex.IsLockHeld()) { mutex.ReleaseLock(); currentLidFrame = getLastLidFrame(); frameCounter.Value = 2; environment.localSound("doorCreakReverse"); } } else { if ((int)frameCounter <= -1 || currentLidFrame >= 504) { return; } frameCounter.Value--; if ((int)frameCounter > 0) { return; } if (currentLidFrame == 503) { dumpContents(environment); frameCounter.Value = -1; return; } frameCounter.Value = 10; currentLidFrame++; if (currentLidFrame == 503) { frameCounter.Value += 5; } } }
public override void updateWhenCurrentLocation(GameTime time, GameLocation environment) { mutex.Update(Game1.getOnlineFarmers()); UpdateBedTile(check_bounds: true); base.updateWhenCurrentLocation(time, environment); }
public override void updateEvenIfFarmerIsntHere(GameTime time, bool ignoreWasUpdatedFlush = false) { base.updateEvenIfFarmerIsntHere(time, ignoreWasUpdatedFlush); gourmandMutex.Update(Game1.getOnlineFarmers()); }
public override void updateWhenCurrentLocation(GameTime time, GameLocation environment) { mutex.Update(environment); base.updateWhenCurrentLocation(time, environment); }