Skip to content
Snippets Groups Projects
Commit 86587816 authored by Purity's avatar Purity
Browse files

Merge branch 'cr-fix-1' into 'dev'

Combat Renderer - Fixes One

See merge request !3023
parents 5ed92ef2 1b431d43
No related branches found
No related tags found
1 merge request!3023Combat Renderer - Fixes One
Showing
with 108 additions and 15 deletions
......@@ -62,29 +62,101 @@ class CombatEditor {
*/
static createLayerDialogContent(parent) {
const fragment = document.createDocumentFragment();
const title = document.createElement("span");
title.textContent = CombatEditor.layer?.name || "Unknown";
fragment.append(title);
const showEle = document.createElement("input");
showEle.type = "checkbox";
showEle.checked = !!CombatEditor.layer?.show;
showEle.addEventListener("change", ev => {
const layer = CombatEditor.layer;
if (layer == null) {
return fragment;
}
const container = document.createElement("div");
container.classList.add("d-flex", "flex-column", "gap-1", "p-2");
// Show
CombatEditor.CreateCheckboxControl(container, "cr-layer-show", "Show: ", !!layer.show, (control, layer) => {
layer.show = control.checked;
if (layer.show) {
parent.classList.remove("faded");
} else {
parent.classList.add("faded");
}
});
// Src
if (typeof layer.src === "string") {
CombatEditor.CreateTextboxControl(container, "cr-layer-src", "Src: ", layer.src, (control, layer) => {
layer.src = control.value;
});
}
fragment.append(container);
return fragment;
}
/**
* @param {HTMLElement} parent
* @param {string} id
* @param {string?} summary
* @param {boolean} value
* @param {function(HTMLInputElement, Partial<CompositeLayerSpec>): void} onChange
*/
static CreateCheckboxControl(parent, id, summary, value, onChange) {
const label = document.createElement("label");
label.textContent = summary;
label.htmlFor = id;
const control = document.createElement("input");
control.id = id;
control.type = "checkbox";
control.checked = value;
control.addEventListener("change", ev => {
if (CombatEditor.layer == null) {
return;
}
if (!(ev.target instanceof HTMLInputElement)) {
return;
}
CombatEditor.layer.show = ev.target.checked;
if (CombatEditor.layer.show) {
parent.classList.remove("faded");
} else {
parent.classList.add("faded");
onChange(ev.target, CombatEditor.layer);
CombatEditor.refreshCombatCanvas();
});
label.append(control);
parent.append(label);
}
/**
* @param {HTMLElement} parent
* @param {string} id
* @param {string?} summary
* @param {string} value
* @param {function(HTMLInputElement, Partial<CompositeLayerSpec>): void} onChange
*/
static CreateTextboxControl(parent, id, summary, value, onChange) {
const label = document.createElement("label");
label.textContent = summary;
label.htmlFor = id;
const control = document.createElement("input");
control.id = id;
control.classList.add("bg-black", "white");
control.type = "text";
control.value = value;
control.onfocus = () => {
V.tempDisable = true;
};
control.onblur = () => {
V.tempDisable = false;
};
control.addEventListener("change", ev => {
if (CombatEditor.layer == null) {
return;
}
if (!(ev.target instanceof HTMLInputElement)) {
return;
}
onChange(ev.target, CombatEditor.layer);
CombatEditor.refreshCombatCanvas();
});
fragment.append(showEle);
return fragment;
label.append(control);
parent.append(label);
}
static createLayerDialog() {
......
......@@ -46,6 +46,9 @@ function initGenitals() {
name: "chastity belt",
name_cap: "Chastity belt",
variable: "chastitybelt",
combat: {
reference: "chastitycage",
},
integrity: 2000,
integrity_max: 2000,
fabric_strength: 15,
......@@ -160,6 +163,9 @@ function initGenitals() {
name: "gold chastity belt",
name_cap: "Gold chastity belt",
variable: "goldchastitybelt",
combat: {
reference: "chastitycage",
},
integrity: 6000,
integrity_max: 6000,
fabric_strength: 15,
......@@ -204,6 +210,9 @@ function initGenitals() {
name: "fetish chastity belt",
name_cap: "Fetish Chastity belt",
variable: "chastitybeltfetish",
combat: {
reference: "chastitycage",
},
integrity: 1500,
integrity_max: 1500,
fabric_strength: 12,
......@@ -249,6 +258,9 @@ function initGenitals() {
name: "fetish chastity cage",
name_cap: "Fetish Chastity cage",
variable: "chastitycagefetish",
combat: {
reference: "chastitycage",
},
integrity: 1500,
integrity_max: 1500,
fabric_strength: 12,
......@@ -318,6 +330,9 @@ function initGenitals() {
name: "small chastity cage",
name_cap: "Small Chastity cage",
variable: "smallchastitycage",
combat: {
reference: "chastitycage",
},
integrity: 4000,
integrity_max: 4000,
fabric_strength: 20,
......@@ -388,6 +403,9 @@ function initGenitals() {
name: "flat chastity cage",
name_cap: "Flat Chastity cage",
variable: "flatchastitycage",
combat: {
reference: "chastitycage",
},
integrity: 6000,
integrity_max: 6000,
fabric_strength: 30,
......@@ -458,6 +476,9 @@ function initGenitals() {
name: "chastity parasite",
name_cap: "chastity parasite",
variable: "slimechastitycage",
combat: {
reference: "chastitycage",
},
integrity: 500,
integrity_max: 500,
fabric_strength: 10,
......
......@@ -974,7 +974,7 @@ function initLegs() {
name_cap: "Mismatched socks",
variable: "mismatched socks",
combat: {
reference: "tights",
reference: "striped socks long",
},
integrity: 100,
integrity_max: 100,
......
img/newsex/doggy/clothing/legs/boysgymsocks/back-down-knees.png

321 B

img/newsex/doggy/clothing/legs/boysgymsocks/back-up-knees.png

384 B

img/newsex/doggy/clothing/legs/boysgymsocks/front-down-knees.png

482 B

img/newsex/doggy/clothing/legs/boysgymsocks/front-footjob-knees.png

805 B

img/newsex/doggy/clothing/legs/girlsgymsocks/back-down-knees.png

321 B

img/newsex/doggy/clothing/legs/girlsgymsocks/back-up-knees.png

384 B

img/newsex/doggy/clothing/legs/girlsgymsocks/front-down-knees.png

474 B

img/newsex/doggy/clothing/legs/girlsgymsocks/front-footjob-knees.png

561 B

img/newsex/missionary/clothing/legs/boysgymsocks/back-down-ankles.png

1.69 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/back-down-ankles.png

1.72 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/back-down-ankles.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-down-ankles.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-down-ankles.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-down-ankles.png
  • 2-up
  • Swipe
  • Onion skin
img/newsex/missionary/clothing/legs/boysgymsocks/back-down-knees.png

1.72 KiB

img/newsex/missionary/clothing/legs/boysgymsocks/back-down-thighs.png

2.26 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/back-down-thighs.png

2.29 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/back-down-thighs.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-down-thighs.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-down-thighs.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-down-thighs.png
  • 2-up
  • Swipe
  • Onion skin
img/newsex/missionary/clothing/legs/boysgymsocks/back-up-ankles.png

1.4 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/back-up-ankles.png

1.42 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/back-up-ankles.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-up-ankles.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-up-ankles.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-up-ankles.png
  • 2-up
  • Swipe
  • Onion skin
img/newsex/missionary/clothing/legs/boysgymsocks/back-up-knees.png

1.42 KiB

img/newsex/missionary/clothing/legs/boysgymsocks/back-up-thighs.png

1.93 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/back-up-thighs.png

1.95 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/back-up-thighs.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-up-thighs.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-up-thighs.png
img/newsex/missionary/clothing/legs/boysgymsocks/back-up-thighs.png
  • 2-up
  • Swipe
  • Onion skin
img/newsex/missionary/clothing/legs/boysgymsocks/front-down-ankles.png

1.71 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/front-down-ankles.png

1.72 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/front-down-ankles.png
img/newsex/missionary/clothing/legs/boysgymsocks/front-down-ankles.png
img/newsex/missionary/clothing/legs/boysgymsocks/front-down-ankles.png
img/newsex/missionary/clothing/legs/boysgymsocks/front-down-ankles.png
  • 2-up
  • Swipe
  • Onion skin
img/newsex/missionary/clothing/legs/boysgymsocks/front-down-knees.png

1.72 KiB

img/newsex/missionary/clothing/legs/boysgymsocks/front-down-thighs.png

2.24 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/front-down-thighs.png

2.26 KiB | W: | H:

img/newsex/missionary/clothing/legs/boysgymsocks/front-down-thighs.png
img/newsex/missionary/clothing/legs/boysgymsocks/front-down-thighs.png
img/newsex/missionary/clothing/legs/boysgymsocks/front-down-thighs.png
img/newsex/missionary/clothing/legs/boysgymsocks/front-down-thighs.png
  • 2-up
  • Swipe
  • Onion skin
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment