この更新は2025年1月8日の更新内容です
はじめに
GS2-Stamina はスタミナ機能を提供するマイクロサービスです。
GS2-Buff を利用することで、イベントスケジュールなどと連携して各種マイクロサービスのマスターデータに補正値を提供できます。
GS2-Stamina との連携あれば、イベント期間中スタミナの回復速度2倍や、最大値1.5倍といった設定を GS2-Stamina のマスターデータを更新することなく適用することができます。
機能追加の背景
GS2-Buff のバフの有効期間が切れる時や、より強力なバフに書き換える時に意図しない動作をすることがありました。
GS2-Stamina は更新があった時に最終更新日時とその時のスタミナの値を記録しており、その後スタミナを取得した時には 最終更新日時 からの経過時間に応じて回復量を計算し、記録されたスタミナの値に回復量を加算した値を応答しており、取得だけではデータベースの値は更新しません。
そのため、GS2-Buff が切れてスタミナの回復速度が 1.5倍 から 1倍に なると、回復量が減るためスタミナの値が減ってしまうという現象が発生したり、1.5倍だったバフが2倍になると、1.5倍だった期間も含めて2倍されるようになるため、意図した以上にスタミナの量が増えるといった現象が発生します。
追加された機能の詳細
APIを呼び出したタイミングで 最終更新日時とその時のスタミナの値を記録 を強制的に実行するAPIが追加されました。
これによって、バフが切れる前に結果を確定することで、スタミナが意図せず減ることを防いだり、1.5倍から2倍にバフの効果が変わるタイミングで結果を確定することで、1.5倍の状態で確定し、現在時刻から2倍として計算するようなことが可能となります。
var result = await gs2.Stamina.Namespace( namespaceName: "namespace-0001" ).Me( gameSession: GameSession ).Stamina( staminaName: "stamina-0001" ).ApplyAsync( ); var item = await result.ModelAsync();
コメント