apply suggestions
continuous-integration/drone/push Build is passing Details

maxime.batista 1 year ago
parent 5359bb12de
commit c6ca4e6c76

@ -1,30 +1,10 @@
import { import {BallState, Player, PlayerLike, PlayerPhantom,} from "../model/tactic/Player"
BallState, import {ComponentId, TacticComponent, TacticContent,} from "../model/tactic/Tactic"
Player, import {removeComponent, updateComponent} from "./TacticContentDomains"
PlayerLike, import {removeAllActionsTargeting, spreadNewStateFromOriginStateChange,} from "./ActionsDomains"
PlayerPhantom, import {ActionKind} from "../model/tactic/Action"
} from "../model/tactic/Player" import {add, minus, norm, Pos, posWithinBase, ratioWithinBase, relativeTo,} from "../geo/Pos.ts"
import { import {PLAYER_RADIUS_PIXELS} from "../components/editor/CourtPlayer.tsx"
ComponentId,
TacticComponent,
TacticContent,
} from "../model/tactic/Tactic"
import { removeComponent, updateComponent } from "./TacticContentDomains"
import {
removeAllActionsTargeting,
spreadNewStateFromOriginStateChange,
} from "./ActionsDomains"
import { ActionKind } from "../model/tactic/Action"
import {
add,
minus,
norm,
Pos,
posWithinBase,
ratioWithinBase,
relativeTo,
} from "../geo/Pos.ts"
import { PLAYER_RADIUS_PIXELS } from "../components/editor/CourtPlayer.tsx"
export function getOrigin( export function getOrigin(
pathItem: PlayerPhantom, pathItem: PlayerPhantom,
@ -41,7 +21,7 @@ export function getPlayerNextTo(
): PlayerLike | undefined { ): PlayerLike | undefined {
const playerOrigin = const playerOrigin =
player.type === "player" ? player : getOrigin(player, components) player.type === "player" ? player : getOrigin(player, components)
const pathItems = playerOrigin.path?.items! const pathItems = playerOrigin.path!.items
// add one as there is a shifting because a Player is never at the head of its own path // add one as there is a shifting because a Player is never at the head of its own path
const idx = pathItems.indexOf(player.id) + 1 // is 0 if the player is the origin const idx = pathItems.indexOf(player.id) + 1 // is 0 if the player is the origin
@ -49,11 +29,9 @@ export function getPlayerNextTo(
const targetIdx = idx + n const targetIdx = idx + n
// remove the screen phantom // remove the screen phantom
const result = return targetIdx == 0
targetIdx == 0 ? playerOrigin
? playerOrigin : getComponent<PlayerLike>(pathItems[targetIdx - 1], components)
: getComponent<PlayerLike>(pathItems[targetIdx - 1], components)
return result
} }
//FIXME this function can be a bottleneck if the phantom's position is //FIXME this function can be a bottleneck if the phantom's position is
@ -219,22 +197,20 @@ export function removePlayer(
-1, -1,
content.components, content.components,
)! )!
const actionIdx = playerBefore.actions.findIndex( const actions = playerBefore.actions.filter(
(a) => a.target === pos.attach, (a) => a.target === pos.attach,
) )
content = updateComponent( content = updateComponent(
{ {
...playerBefore, ...playerBefore,
actions: playerBefore.actions.toSpliced(actionIdx, 1), actions,
}, },
content, content,
) )
} }
const origin = getOrigin(player, content.components) const origin = getOrigin(player, content.components)
content = truncatePlayerPath(origin, player, content) return truncatePlayerPath(origin, player, content)
console.log(content)
return content
} }
content = clearPlayerPath(player, content) content = clearPlayerPath(player, content)

Loading…
Cancel
Save