public void Update(IManageInput inputService) { //Sjekker om spilleren prøver å snakke med NPCen if(_player1.FootBox.Intersects(_talkingRangeBox) && _player1.FacesTowards(this._talkingRangeBox.Center.X) && inputService.KeyWasPressedThisFrame(Keys.F)) { ChangeConversationState(); } if (inConversation) { if (!_player1.FootBox.Intersects(_talkingRangeBox)) { ChangeConversationState(); } } dialogController.Update(inputService); }
public void Update(IManageInput inputService) { if(inputService.KeyWasPressedThisFrame(Keys.P)) levelUp(); //setter layerdepth til bunnen av spilleren setLayerDepth(_footBox.Bottom); //Øker hastigheten til walk-animasjonen if (animationPlayer.CurrentAnimation == "battleBlockWalk") animationPlayer.PlaySpeedMultiplier = 1.4f; else animationPlayer.PlaySpeedMultiplier = 1f; //Hvis spilleren ikke går, stopp gålyden if (AnimationState != "walking") _audioManager.StopLoop("walk"); //Hvis spilleren ikke angriper if (AnimationState != "slashing") { //SJekk hvilke knapper som blir trykket og aktiver funksjonene if (inputService.KeyIsDown(Keys.Space)) { attackSlash(); } else if (inputService.KeyIsDown(Keys.LeftShift)) { block(); } //Hvis én av piltastene er nede, aktiver walk else if (inputService.KeyIsDown(Keys.Left) || inputService.KeyIsDown(Keys.Down) || inputService.KeyIsDown(Keys.Up) || inputService.KeyIsDown(Keys.Right)) { walk(inputService); } //Hvis ingenting blir trykket, stå stille else { idle(); } } //Hvis spilleren angriper og er på slutten av animasjonen else if (animationPlayer.Transitioning == false && animationPlayer.CurrentKeyframeIndex > 0 && animationPlayer.CurrentKeyframeIndex == (animationPlayer.currentPlayingAnimation.Keyframes.Count() - 1)) { //Hvis det finnes en aktiv fiende if (activeEnemy != null) { //Hvis targetboksen er innenfor fiendens footbox, og spilleren ser mot fienden if (TargetBox.Intersects(activeEnemy.FootBox) && FacesTowards((float)activeEnemy.FootBox.Center.X)) { //Aktiver tilfeldig angrepslyd og gjør skade på fienden _audioManager.AddSound(Directory + "/attack" + rInt(1, 3)); activeEnemy.takeDamage(_damage); } } //Hvis det finnes steiner som kan treffes else if (StonesToMine != null) { //Sjekker om spillerens targetbox er innenfor en av steinene i listen, og om han står mot dem foreach (Stone stone in StonesToMine) { if (TargetBox.Intersects(stone.FootBox) && stone.endurance > 0 && FacesTowards(stone.FootBox.Center.X)) { //Aktiver tilfeldig "slå på stein"-lyd og gjør skade på steinen _audioManager.AddSound(Directory + "/clang" + rInt(1, 4)); stone.IsHit(); } } } idle(); } }