all repos — emchess @ 582b0387fa0b9b6f7b51a8a13c4fee17764ffb39

src/game/personalities.js (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
export const PERSONALITIES = [
    {
        id: "beginner",
        face: "🌱",
        name: "The Beginner",
        blurb: "Plays slowly and makes clear mistakes.",
        skill: 0,
        movetime: 120,
        think: [700, 1400],
        blunderChance: 0.28,
        multipv: 4,
        contempt: 0,
    },
    {
        id: "patient",
        face: "🐢",
        name: "The Patient",
        blurb: "Defensive, avoids risks, trades when it can.",
        skill: 4,
        movetime: 200,
        think: [800, 1500],
        blunderChance: 0.1,
        multipv: 3,
        contempt: -30,
    },
    {
        id: "trickster",
        face: "🦊",
        name: "The Trickster",
        blurb: "Hunts for forks, traps and quick attacks.",
        skill: 8,
        movetime: 300,
        think: [600, 1200],
        blunderChance: 0.06,
        multipv: 2,
        contempt: 40,
    },
    {
        id: "guardian",
        face: "🛡️",
        name: "The Guardian",
        blurb: "Values safety and a solid structure.",
        skill: 12,
        movetime: 400,
        think: [700, 1300],
        blunderChance: 0.03,
        multipv: 1,
        contempt: -20,
    },
    {
        id: "aggressor",
        face: "🔥",
        name: "The Aggressor",
        blurb: "Attacks early and accepts sacrifices.",
        skill: 15,
        movetime: 500,
        think: [500, 1100],
        blunderChance: 0.02,
        multipv: 1,
        contempt: 80,
    },
    {
        id: "master",
        face: "👁️",
        name: "The Master",
        blurb: "Strong and precise. Shows no mercy.",
        skill: 20,
        movetime: 1000,
        think: [500, 900],
        blunderChance: 0,
        multipv: 1,
        contempt: 0,
    },
];
export function getPersonality(id) {
    return PERSONALITIES.find((p) => p.id === id) ?? PERSONALITIES[0];
}