public/lib/wardrobe.js
分割 2 / 7 · 元ファイル 197〜347行付近
else g.lineTo(x + Math.cos(a) * rr, T(shY, bot, 0.26) + Math.sin(a) * rr);
}
g.closePath(); g.fill();
} },
{ id: 'ribbondress', nm: 'リボンドレス', price: 240, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, col);
skirt(g, x, shY, bot, r, 0.46, col, 1.50, 0.52);
panel(g, x, shY, bot, r, 0.44, 0.52, WH);
bow(g, x, T(shY, bot, 0.24), r * 0.40, WH);
g.strokeStyle = WH; g.lineWidth = r * 0.09;
g.beginPath(); g.moveTo(x - r * 1.46, bot + r * 0.42); g.lineTo(x + r * 1.46, bot + r * 0.42); g.stroke();
} },
{ id: 'onepiece', nm: 'ワンピース風', price: 140, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, col);
skirt(g, x, shY, bot, r, 0.38, col, 1.40, 0.55);
panel(g, x, shY, bot, r, 0, 0.34, lite(col, 0.32));
g.strokeStyle = dark(col, 0.25); g.lineWidth = 1;
var y = T(shY, bot, 0.36); g.beginPath(); g.moveTo(x - HW(r, 0.36), y); g.lineTo(x + HW(r, 0.36), y); g.stroke();
} },
{ id: 'sailor', nm: 'セーラー風', price: 260, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, WH);
skirt(g, x, shY, bot, r, 0.54, col, 1.46, 0.34);
pleat(g, x, T(shY, bot, 0.54), bot + r * 0.34, HW(r, 0.54), r * 1.46, 6, dark(col, 0.25), 1);
/* 大きな襟 */
g.fillStyle = col;
g.beginPath(); g.moveTo(x - r * 0.74, shY); g.lineTo(x + r * 0.74, shY);
g.lineTo(x + r * 0.66, T(shY, bot, 0.30)); g.lineTo(x - r * 0.66, T(shY, bot, 0.30)); g.closePath(); g.fill();
g.strokeStyle = WH; g.lineWidth = 1;
g.beginPath(); g.moveTo(x - r * 0.70, T(shY, bot, 0.20)); g.lineTo(x + r * 0.70, T(shY, bot, 0.20)); g.stroke();
g.beginPath(); g.moveTo(x - r * 0.68, T(shY, bot, 0.26)); g.lineTo(x + r * 0.68, T(shY, bot, 0.26)); g.stroke();
/* 胸のスカーフ */
g.fillStyle = RD;
g.beginPath(); g.moveTo(x, T(shY, bot, 0.14)); g.lineTo(x + r * 0.18, T(shY, bot, 0.42));
g.lineTo(x - r * 0.18, T(shY, bot, 0.42)); g.closePath(); g.fill();
} },
{ id: 'blouse', nm: 'ブラウス', price: 120, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, lite(col, 0.74));
rcollar(g, x, shY, r, WH);
buttons(g, x, shY, bot, r, dark(col, 0.4), 4, 0.28, 0.92);
frill(g, x, bot, r * 1.16, r * 0.13, lite(col, 0.86), 6);
} },
{ id: 'sundress', nm: 'サンドレス', price: 150, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, lite(col, 0.30));
skirt(g, x, shY, bot, r, 0.42, lite(col, 0.30), 1.55, 0.56);
panel(g, x, shY, bot, r, 0, 0.12, WH);
straps(g, x, shY, bot, r, WH, r * 0.10);
g.fillStyle = WH;
for (var i = 0; i < 5; i++) {
g.beginPath(); g.arc(x + (i - 2) * r * 0.46, T(shY, bot, 0.62 + (i % 2) * 0.22), r * 0.09, 0, 7); g.fill();
}
} },
{ id: 'camisole', nm: 'キャミソール', price: 100, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, lite(col, 0.52));
panel(g, x, shY, bot, r, 0, 0.10, lite(col, 0.80));
straps(g, x, shY, bot, r, lite(col, 0.52), r * 0.09);
frill(g, x, T(shY, bot, 0.12), HW(r, 0.12), r * 0.10, WH, 5);
} },
{ id: 'knitdress', nm: 'ニットワンピ', price: 170, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, lite(col, 0.22));
skirt(g, x, shY, bot, r, 0.60, lite(col, 0.22), 1.24, 0.62);
rib(g, x, shY, bot, r, 0.05, 0.95, 8, dark(col, 0.20), 1);
panel(g, x, shY, bot, r, 0, 0.08, dark(col, 0.15));
} },
{ id: 'cardigan', nm: 'カーディガン', price: 190, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
openFront(g, x, shY, bot, r, lite(col, 0.20), WH);
buttons(g, x, shY, bot, r, GD, 3, 0.24, 0.70);
rib(g, x, shY, bot, r, 0.92, 0.99, 2, dark(col, 0.3), 1);
} },
{ id: 'bolero', nm: 'ボレロ', price: 200, 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, WH, 1.44, 0.54);
/* 短い上着だけ肩に乗る */
g.fillStyle = col;
g.beginPath(); g.moveTo(x - r * 0.74, shY); g.lineTo(x - r * 0.20, shY);
g.lineTo(x - r * 0.40, T(shY, bot, 0.34)); g.lineTo(x - r * 0.90, T(shY, bot, 0.34)); g.closePath(); g.fill();
g.beginPath(); g.moveTo(x + r * 0.74, shY); g.lineTo(x + r * 0.20, shY);
g.lineTo(x + r * 0.40, T(shY, bot, 0.34)); g.lineTo(x + r * 0.90, T(shY, bot, 0.34)); g.closePath(); g.fill();
bow(g, x, T(shY, bot, 0.44), r * 0.24, col);
} },
{ id: 'tutu', nm: 'チュチュ', price: 260, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, dark(col, 0.15));
/* 腰から下を薄い布にして、その上に横へ張り出す層を重ねる
(張り出しだけ描くと、盆を持っているように見えてしまう) */
var y = T(shY, bot, 0.54), f = lite(col, 0.70);
g.fillStyle = lite(col, 0.42);
g.beginPath(); g.moveTo(x - HW(r, 0.54), y); g.lineTo(x + HW(r, 0.54), y);
g.lineTo(x + r * 1.30, bot + r * 0.24); g.lineTo(x - r * 1.30, bot + r * 0.24); g.closePath(); g.fill();
g.fillStyle = f;
g.beginPath(); g.ellipse(x, y, r * 1.52, r * 0.60, 0, 0, Math.PI); g.closePath(); g.fill();
panel(g, x, shY, bot, r, 0.46, 0.54, PK);
frill(g, x, T(shY, bot, 0.10), HW(r, 0.10), r * 0.11, f, 5);
} },
{ id: 'yukata', nm: '浴衣風', price: 300, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, lite(col, 0.55));
panel(g, x, shY, bot, r, 0.95, 1.16, lite(col, 0.55)); /* 裾を少し伸ばす */
xcollar(g, x, shY, bot, r, WH);
panel(g, x, shY, bot, r, 0.50, 0.66, dark(col, 0.45)); /* 帯 */
g.strokeStyle = GD; g.lineWidth = 1;
var y = T(shY, bot, 0.58); g.beginPath(); g.moveTo(x - HW(r, 0.58), y); g.lineTo(x + HW(r, 0.58), y); g.stroke();
g.fillStyle = WH;
for (var i = 0; i < 4; i++) { g.beginPath(); g.arc(x + (i % 2 ? 0.5 : -0.6) * r, T(shY, bot, 0.74 + i * 0.10), r * 0.08, 0, 7); g.fill(); }
} },
{ id: 'hakama', nm: '袴風', price: 330, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, lite(col, 0.62));
xcollar(g, x, shY, bot, r, WH);
/* 下は幅広の袴 */
skirt(g, x, shY, bot, r, 0.44, dark(col, 0.42), 1.34, 0.70);
pleat(g, x, T(shY, bot, 0.46), bot + r * 0.70, HW(r, 0.46), r * 1.34, 5, dark(col, 0.62), 1);
g.strokeStyle = WH; g.lineWidth = r * 0.10;
g.beginPath(); g.moveTo(x - HW(r, 0.44), T(shY, bot, 0.44)); g.lineTo(x + HW(r, 0.44), T(shY, bot, 0.44)); g.stroke();
} },
{ id: 'cheer', nm: 'チア風', price: 280, 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.50, 0.26);
pleat(g, x, T(shY, bot, 0.56), bot + r * 0.26, HW(r, 0.56), r * 1.50, 7, WH, 1.2);
g.fillStyle = WH;
g.beginPath(); g.moveTo(x - r * 0.74, shY); g.lineTo(x - r * 0.40, shY);
g.lineTo(x, T(shY, bot, 0.34)); g.lineTo(x + r * 0.40, shY); g.lineTo(x + r * 0.74, shY);
g.lineTo(x, T(shY, bot, 0.50)); g.closePath(); g.fill();
panel(g, x, shY, bot, r, 0.52, 0.58, WH);
} },
{ id: 'apron', nm: 'エプロン', price: 130, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, col);
g.fillStyle = lite(col, 0.88);
g.beginPath(); g.moveTo(x - r * 0.32, T(shY, bot, 0.14)); g.lineTo(x + r * 0.32, T(shY, bot, 0.14));
g.lineTo(x + r * 0.78, bot); g.lineTo(x - r * 0.78, bot); g.closePath(); g.fill();
g.strokeStyle = lite(col, 0.88); g.lineWidth = r * 0.09;
g.beginPath(); g.moveTo(x - r * 0.30, T(shY, bot, 0.14)); g.lineTo(x - r * 0.52, shY); g.stroke();
g.beginPath(); g.moveTo(x + r * 0.30, T(shY, bot, 0.14)); g.lineTo(x + r * 0.52, shY); g.stroke();
pocket(g, x, T(shY, bot, 0.62), r * 0.44, r * 0.30, dark(col, 0.10));
} },
{ id: 'lolita', nm: 'ロリータ風', price: 400, tone: 'cute', draw: function (g, x, shY, bot, r, col) {
base(g, x, shY, bot, r, dark(col, 0.55));
skirt(g, x, shY, bot, r, 0.48, dark(col, 0.55), 1.48, 0.48);
frill(g, x, T(shY, bot, 0.74), r * 1.24, r * 0.17, WH, 6);
frill(g, x, bot + r * 0.46, r * 1.48, r * 0.19, WH, 8);
frill(g, x, T(shY, bot, 0.12), HW(r, 0.12), r * 0.12, WH, 5);
/* 胸の紐編み */
g.strokeStyle = WH; g.lineWidth = 1;
for (var i = 0; i < 3; i++) {
var y0 = T(shY, bot, 0.20 + i * 0.09), y1 = T(shY, bot, 0.29 + i * 0.09);
g.beginPath(); g.moveTo(x - r * 0.22, y0); g.lineTo(x + r * 0.22, y1); g.stroke();
g.beginPath(); g.moveTo(x + r * 0.22, y0); g.lineTo(x - r * 0.22, y1); g.stroke();
}
bow(g, x, T(shY, bot, 0.50), r * 0.30, PK);
} },
{ id: 'nurse', 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.62, WH, 1.30, 0.34);
vneck(g, x, shY, r, lite(col, 0.30), 0.70);
g.fillStyle = dark(col, 0.22);