public/lib/wardrobe.js

分割 3 / 7 · 元ファイル 348〜489行付近

原文の連続部分です。長い圧縮行は行の途中で分割する場合があります。全分割を順に連結するとファイル全文になります。

      g.beginPath(); g.moveTo(x - r * 0.74, shY); g.lineTo(x - r * 0.42, shY); g.lineTo(x - r * 0.20, T(shY, bot, 0.26)); g.closePath(); g.fill();
      g.beginPath(); g.moveTo(x + r * 0.74, shY); g.lineTo(x + r * 0.42, shY); g.lineTo(x + r * 0.20, T(shY, bot, 0.26)); g.closePath(); g.fill();
      pocket(g, x + r * 0.60, T(shY, bot, 0.56), r * 0.36, r * 0.26, lite(col, 0.55));
      panel(g, x, shY, bot, r, 0.58, 0.64, lite(col, 0.35));
    } },
    { id: 'waitress', nm: 'ウェイトレス風', price: 250, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, dark(col, 0.50));
      skirt(g, x, shY, bot, r, 0.54, dark(col, 0.50), 1.44, 0.40);
      rcollar(g, x, shY, r, WH);
      /* 腰の小さな白エプロン */
      g.fillStyle = WH;
      g.beginPath(); g.moveTo(x - r * 0.62, T(shY, bot, 0.58)); g.lineTo(x + r * 0.62, T(shY, bot, 0.58));
      g.lineTo(x + r * 0.78, bot + r * 0.30); g.lineTo(x - r * 0.78, bot + r * 0.30); g.closePath(); g.fill();
      panel(g, x, shY, bot, r, 0.54, 0.60, WH);
      bow(g, x - r * 0.70, T(shY, bot, 0.58), r * 0.22, WH);
    } },
    { id: 'pinafore', nm: 'ジャンパースカート', price: 220, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, WH);
      skirt(g, x, shY, bot, r, 0.40, dark(col, 0.25), 1.48, 0.50);
      g.fillStyle = dark(col, 0.25);
      g.beginPath(); g.moveTo(x - r * 0.40, T(shY, bot, 0.16)); g.lineTo(x + r * 0.40, T(shY, bot, 0.16));
      g.lineTo(x + HW(r, 0.44), T(shY, bot, 0.44)); g.lineTo(x - HW(r, 0.44), T(shY, bot, 0.44)); g.closePath(); g.fill();
      straps(g, x, shY, bot, r, dark(col, 0.25), r * 0.14);
      buttons(g, x - r * 0.30, shY, bot, r, GD, 1, 0.18, 0.18);
      buttons(g, x + r * 0.30, shY, bot, r, GD, 1, 0.18, 0.18);
    } },
    { id: 'tiered', nm: '三段スカート', price: 230, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, lite(col, 0.35));
      var y0 = T(shY, bot, 0.40);
      var cs = [lite(col, 0.35), lite(col, 0.18), col];
      for (var i = 0; i < 3; i++) {
        var ya = y0 + (bot + r * 0.52 - y0) * (i / 3), yb = y0 + (bot + r * 0.52 - y0) * ((i + 1) / 3);
        var wa = r * (0.90 + i * 0.26), wb = r * (0.90 + (i + 1) * 0.26);
        g.fillStyle = cs[i];
        g.beginPath(); g.moveTo(x - wa, ya); g.lineTo(x + wa, ya); g.lineTo(x + wb, yb); g.lineTo(x - wb, yb); g.closePath(); g.fill();
      }
      panel(g, x, shY, bot, r, 0.36, 0.42, WH);
    } },
    { id: 'wrap', nm: 'カシュクール', price: 200, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, col);
      skirt(g, x, shY, bot, r, 0.56, col, 1.34, 0.48);
      /* 斜めの合わせ */
      g.fillStyle = lite(col, 0.28);
      g.beginPath(); g.moveTo(x - r * 0.74, shY); g.lineTo(x + r * 0.30, shY);
      g.lineTo(x + HW(r, 0.56), T(shY, bot, 0.56)); g.lineTo(x - HW(r, 0.56), T(shY, bot, 0.56)); g.closePath(); g.fill();
      g.strokeStyle = dark(col, 0.35); g.lineWidth = 1.2;
      g.beginPath(); g.moveTo(x + r * 0.30, shY); g.lineTo(x - r * 0.30, T(shY, bot, 0.56)); g.stroke();
      bow(g, x + r * 0.50, T(shY, bot, 0.54), r * 0.20, dark(col, 0.35));
    } },
    { id: 'peplum', nm: 'ペプラム', price: 240, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, col);
      panel(g, x, shY, bot, r, 0.46, 0.54, BK);
      /* 腰のひらひら */
      g.fillStyle = lite(col, 0.35);
      g.beginPath(); g.moveTo(x - HW(r, 0.54), T(shY, bot, 0.54)); g.lineTo(x + HW(r, 0.54), T(shY, bot, 0.54));
      g.lineTo(x + r * 1.46, T(shY, bot, 0.82)); g.lineTo(x - r * 1.46, T(shY, bot, 0.82)); g.closePath(); g.fill();
      frill(g, x, T(shY, bot, 0.82), r * 1.46, r * 0.14, lite(col, 0.55), 7);
      vneck(g, x, shY, r, lite(col, 0.60), 0.58);
    } },
    { id: 'hoodiedress', nm: 'パーカーワンピ', price: 190, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, lite(col, 0.20));
      skirt(g, x, shY, bot, r, 0.66, lite(col, 0.20), 1.32, 0.66);
      hood(g, x, shY, r, dark(col, 0.10));
      g.strokeStyle = WH; g.lineWidth = 1.4;
      g.beginPath(); g.moveTo(x - r * 0.16, T(shY, bot, 0.18)); g.lineTo(x - r * 0.20, T(shY, bot, 0.42)); g.stroke();
      g.beginPath(); g.moveTo(x + r * 0.16, T(shY, bot, 0.18)); g.lineTo(x + r * 0.20, T(shY, bot, 0.42)); g.stroke();
      pocket(g, x, T(shY, bot, 0.68), r * 0.90, r * 0.28, dark(col, 0.14));
    } },
    { id: 'blazer_f', nm: 'ブレザー', price: 290, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, WH);
      skirt(g, x, shY, bot, r, 0.58, dark(col, 0.40), 1.46, 0.32);
      pleat(g, x, T(shY, bot, 0.58), bot + r * 0.32, HW(r, 0.58), r * 1.46, 6, dark(col, 0.60), 1);
      g.fillStyle = dark(col, 0.55);
      g.beginPath(); g.moveTo(x - r * 0.74, shY); g.lineTo(x - r * 0.22, shY);
      g.lineTo(x - r * 0.34, T(shY, bot, 0.60)); g.lineTo(x - HW(r, 0.60), T(shY, bot, 0.60)); g.closePath(); g.fill();
      g.beginPath(); g.moveTo(x + r * 0.74, shY); g.lineTo(x + r * 0.22, shY);
      g.lineTo(x + r * 0.34, T(shY, bot, 0.60)); g.lineTo(x + HW(r, 0.60), T(shY, bot, 0.60)); g.closePath(); g.fill();
      bow(g, x, T(shY, bot, 0.24), r * 0.26, RD);
    } },
    { id: 'vestskirt', nm: 'ベストとスカート', price: 210, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, WH);
      skirt(g, x, shY, bot, r, 0.60, dark(col, 0.30), 1.36, 0.40);
      g.fillStyle = col;
      g.beginPath(); g.moveTo(x - r * 0.70, shY); g.lineTo(x - r * 0.26, shY); g.lineTo(x, T(shY, bot, 0.34));
      g.lineTo(x + r * 0.26, shY); g.lineTo(x + r * 0.70, shY);
      g.lineTo(x + HW(r, 0.60), T(shY, bot, 0.60)); g.lineTo(x - HW(r, 0.60), T(shY, bot, 0.60)); g.closePath(); g.fill();
      buttons(g, x, shY, bot, r, GD, 2, 0.42, 0.54);
      panel(g, x, shY, bot, r, 0.58, 0.64, BK);
    } },
    { id: 'miko', nm: '巫女風', price: 310, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, WH);
      skirt(g, x, shY, bot, r, 0.42, RD, 1.36, 0.72);
      xcollar(g, x, shY, bot, r, CR);
      g.strokeStyle = WH; g.lineWidth = r * 0.11;
      g.beginPath(); g.moveTo(x - HW(r, 0.42), T(shY, bot, 0.42)); g.lineTo(x + HW(r, 0.42), T(shY, bot, 0.42)); g.stroke();
      pleat(g, x, T(shY, bot, 0.46), bot + r * 0.70, HW(r, 0.46), r * 1.36, 4, '#a33429', 1);
    } },
    { id: 'gothic', nm: 'ゴシック風', price: 380, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, dark(col, 0.78));
      skirt(g, x, shY, bot, r, 0.44, dark(col, 0.78), 1.48, 0.62);
      frill(g, x, T(shY, bot, 0.06), HW(r, 0.06), r * 0.13, CR, 5);
      frill(g, x, bot + r * 0.60, r * 1.48, r * 0.16, CR, 8);
      /* 前で締める紐 */
      g.strokeStyle = CR; g.lineWidth = 1;
      for (var i = 0; i < 4; i++) {
        var y0 = T(shY, bot, 0.16 + i * 0.08), y1 = T(shY, bot, 0.24 + i * 0.08);
        g.beginPath(); g.moveTo(x - r * 0.24, y0); g.lineTo(x + r * 0.24, y1); g.stroke();
        g.beginPath(); g.moveTo(x + r * 0.24, y0); g.lineTo(x - r * 0.24, y1); g.stroke();
      }
      panel(g, x, shY, bot, r, 0.46, 0.52, '#6b2f46');
    } },
    { id: 'leotard', nm: 'レオタード', price: 230, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, dark(col, 0.10));
      /* 脚の付け根が高い形(切り抜くと下着に見えるので、線で示すだけ) */
      g.strokeStyle = lite(col, 0.55); g.lineWidth = Math.max(1, r * 0.09);
      g.beginPath(); g.arc(x - r * 1.04, bot + r * 0.14, r * 0.58, Math.PI * 1.5, Math.PI * 2); g.stroke();
      g.beginPath(); g.arc(x + r * 1.04, bot + r * 0.14, r * 0.58, Math.PI, Math.PI * 1.5); g.stroke();
      panel(g, x, shY, bot, r, 0.44, 0.50, WH);
      vneck(g, x, shY, r, lite(col, 0.42), 0.52);
    } },
    { id: 'poncho', nm: 'ポンチョ', price: 200, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, dark(col, 0.30));
      /* 三角に広がる1枚布 */
      g.fillStyle = col;
      g.beginPath(); g.moveTo(x - r * 0.50, shY - r * 0.04); g.lineTo(x + r * 0.50, shY - r * 0.04);
      g.lineTo(x + r * 1.56, T(shY, bot, 0.88)); g.lineTo(x - r * 1.56, T(shY, bot, 0.88)); g.closePath(); g.fill();
      g.strokeStyle = lite(col, 0.55); g.lineWidth = 1;
      g.beginPath(); g.moveTo(x - r * 1.40, T(shY, bot, 0.70)); g.lineTo(x + r * 1.40, T(shY, bot, 0.70)); g.stroke();
      /* 房 */
      g.strokeStyle = lite(col, 0.70); g.lineWidth = 1.2;
      for (var i = 0; i < 7; i++) {
        var px = x - r * 1.44 + i * r * 0.48;
        g.beginPath(); g.moveTo(px, T(shY, bot, 0.88)); g.lineTo(px, T(shY, bot, 0.98)); g.stroke();
      }
    } },
    { id: 'highwaist', nm: 'ハイウエスト', price: 160, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
      base(g, x, shY, bot, r, lite(col, 0.72));
      skirt(g, x, shY, bot, r, 0.30, col, 1.44, 0.56);
      panel(g, x, shY, bot, r, 0.28, 0.36, dark(col, 0.40));
      buttons(g, x, shY, bot, r, GD, 2, 0.30, 0.34);
      rcollar(g, x, shY, r, lite(col, 0.88));
    } },