浏览代码

legally distinct from geoguessr duels

Kirk Trombley 3 年之前
父节点
当前提交
e33a684e72

+ 15 - 3
client/src/components/util/GameCreationForm/GameCreationForm.jsx

@@ -12,6 +12,7 @@ import {
   TIME_BANK,
   URBAN,
   NIGHTMARE,
+  RAMP,
 } from "../../../domain/constants";
 import useCountryLookup from "../../../hooks/useCountryLookup";
 import Loading from "../Loading";
@@ -57,6 +58,11 @@ const PRESETS = {
     gameMode: FROZEN,
     scoreMethod: COUNTRY_RACE,
   },
+  BOOTLEG_GG_DUEL: {
+    ...DEFAULTS,
+    clockMode: RACE,
+    scoreMethod: RAMP,
+  },
 };
 
 export const LastSettingsButton = ({ onClick }) => (
@@ -179,6 +185,9 @@ const GameCreationForm = ({ afterCreate, lastSettings = null }) => {
           <Item value={PRESETS.FROZEN_COUNTRY_RACE} display="⭐">
             Frozen Country Race
           </Item>
+          <Item value={PRESETS.BOOTLEG_GG_DUEL} display="⭐">
+            Legally Distinct from Geoguessr Duels
+          </Item>
         </Dropdown>
         {lastSettings && (
           <LastSettingsButton onClick={() => setPreset(lastSettings)} />
@@ -241,13 +250,13 @@ const GameCreationForm = ({ afterCreate, lastSettings = null }) => {
             open="clockMode"
           >
             <Item value={NORMAL} display="⏰">
-              Normal
+              Standard
             </Item>
             <Item value={TIME_BANK} display="🏦">
               Time Bank
             </Item>
-            <Item value={RACE} display="🏃">
-              Race
+            <Item value={RACE} display="⚔️">
+              Duel
             </Item>
           </Dropdown>
           <Dropdown
@@ -258,6 +267,9 @@ const GameCreationForm = ({ afterCreate, lastSettings = null }) => {
             <Item value={DISTANCE} display="📏">
               Distance
             </Item>
+            <Item value={RAMP} display="📈">
+              Ramping
+            </Item>
             <Item value={COUNTRY_RACE} display="🗾">
               Country Race
             </Item>

+ 1 - 0
client/src/domain/constants.js

@@ -19,3 +19,4 @@ export const COUNTRY_RACE = "COUNTRYRACE";
 export const DISTANCE = "DISTANCE";
 export const HARD = "HARD";
 export const NIGHTMARE = "NIGHTMARE";
+export const RAMP = "RAMP";

+ 3 - 0
server/app/api/game.py

@@ -156,6 +156,9 @@ async def submit_guess(round_number: conint(gt=0),
             score, distance = scoring.score_hard((target.latitude, target.longitude), (guess.lat, guess.lng))
         case ScoreMethodEnum.nightmare:
             score, distance = scoring.score_nightmare((target.latitude, target.longitude), (guess.lat, guess.lng))
+        case ScoreMethodEnum.ramp:
+            score, distance = scoring.score((target.latitude, target.longitude), (guess.lat, guess.lng))
+            score *= 1 + ((round_number - 1) * 0.5)
         case _:
             score, distance = scoring.score((target.latitude, target.longitude), (guess.lat, guess.lng))
     

+ 1 - 0
server/app/schemas.py

@@ -29,6 +29,7 @@ class ScoreMethodEnum(str, Enum):
     country_race = "COUNTRYRACE"
     hard = "HARD"
     nightmare = "NIGHTMARE"
+    ramp = "RAMP"
 
 
 class GameConfig(CamelModel):