public CriticalValue FilterScore( CriticalValue score, ScoreableView source = null) { if (IsScoreFreezed || isDead) { return(new CriticalValue()); } if (!score.IsCritical && UnityEngine.Random.value <= CriticalScoreChance && source != null && source.GetComponent <SmashableView>() != null) { score.IsCritical = true; score.Value = Mathf.RoundToInt(score.Value * (1f + criticalScoreFactor)); } for (int i = 0; i < scoreFilters.Count; ++i) { score = scoreFilters[i](score, source); } return(score); }
//[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme, Roles = "expert")] public async Task <ActionResult <CriticalValue> > PostCriticalValue(CriticalValue criticalValue) { _context.CriticalValues.Add(criticalValue); await _context.SaveChangesAsync(); return(CreatedAtAction("GetCriticalValue", new { id = criticalValue.Id }, criticalValue)); }
public async Task <IActionResult> PutCriticalValue(int id, CriticalValue criticalValue) { if (id != criticalValue.Id) { return(BadRequest()); } _context.Entry(criticalValue).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CriticalValueExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
/** * @return Added score */ public int AddScore(PlayerView player, ScoreableView scoreable) { CriticalValue initialScore = UnityEngine.Random.Range( scoreable.MinScore, scoreable.MaxScore + 1); CriticalValue finalScore = player.FilterScore(initialScore, scoreable); if (finalScore <= 0) { return(0); } Profiler.BeginSample("PlayerManager.AddScore()"); player.Score += finalScore; var popup = (WorldSpaceTextPopupView)popupManager.Get( scoreWorldPopupType); popup.transform.localScale = finalScore.IsCritical ? new Vector3(1.5f, 1.5f, 1.5f) : Vector3.one; popup.Msg.text = strBuilder.Append('+').Append(finalScore).ToString(); strBuilder.Length = 0; popup.LookAtTarget = player.Camera; popup.PlaceAbove(scoreable.Collider.bounds); popupManager.Show(popup); Profiler.EndSample(); return(finalScore); }