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));
} },