added weapon creater

This commit is contained in:
2025-05-19 22:10:35 +02:00
parent 644a3878fb
commit 56eb77f646
2 changed files with 113 additions and 4 deletions
+62 -4
View File
@@ -416,10 +416,10 @@ function applyModifiers() {
function applyBuff(buff, rpmModifier, reloadTimeModifier, damageModifier) {
if (ignoreHeadshots &&
(buff.buffType === 'multiplicative-headshot' ||
buff.buffType === 'multiplicative-headshot-base')) {
return;
}
(buff.buffType === 'multiplicative-headshot' ||
buff.buffType === 'multiplicative-headshot-base')) {
return;
}
const {type, buffType, value} = buff;
// Handle headshot multipliers
if (buffType === 'multiplicative-headshot-base' && !headshotBaseApplied) {
@@ -540,6 +540,64 @@ document.querySelectorAll('#guntype-filters input').forEach(checkbox => {
checkbox.addEventListener('change', filterWeapons);
});
// function for Creating a Weapon
const openBtn = document.getElementById('weapon-create');
const closeBtn = document.getElementById('weapon-cancel');
const modal = document.getElementById('weapon-form');
const form = document.getElementById('weaponForm');
// Show the modal
openBtn.addEventListener('click', () => {
modal.style.display = 'flex';
});
// Hide the modal
closeBtn.addEventListener('click', () => {
modal.style.display = 'none';
form.reset();
});
// Handle form submission
form.addEventListener('submit', e => {
e.preventDefault();
const data = new FormData(form);
const newId = weapons.length
? Math.max(...weapons.map(w => w.id)) + 1
: 1;
const weapon = {
id: newId,
name: data.get('name'),
damage: parseFloat(data.get('damage')),
rpm: parseFloat(data.get('rpm')),
mag_size: parseFloat(data.get('magazin')),
reload_time: parseFloat(data.get('reload-time')),
damage_multiplier: parseFloat(data.get('multiplier')),
guntype: data.getAll('gun-type')
};
// 2) Add it locally
weapons.push(weapon);
// 3) Refresh UI
populateWeapons(); // repopulate <select id="weapon-select">
// **Here you can pass `weapon` to your game logic**
console.log('Created weapon:', weapon);
// Close & reset
modal.style.display = 'none';
form.reset();
});
// Optional: click outside form to close
modal.addEventListener('click', e => {
if (e.target === modal) {
modal.style.display = 'none';
form.reset();
}
});
// Initialize
fetchWeaponsData();
+51
View File
@@ -32,6 +32,57 @@
<select id="weapon-select" name="weapons">
<option value="">Select a Weapon</option>
</select>
<button id="weapon-create">Create New Weapon</button>
<div id="weapon-form">
<div>
<h2>New Weapon</h2>
<form id="weaponForm">
<label>
Name:<br>
<input type="text" name="name" required>
</label><br><br>
<label>
Damage:<br>
<input type="number" name="damage" min="0" required>
</label><br><br>
<label>
Rounds Per Minute:<br>
<input type="number" name="rpm" min="0" required>
</label><br><br>
<label>
Magazine Size:<br>
<input type="number" name="magazin" min="1" required>
</label><br><br>
<label>
Reload Time:<br>
<input type="number" name="reload-time" min="0" required>
</label><br><br>
<label>
Damage Multiplier:<br>
<input type="number" name="multiplier" min="0" required>
</label><br><br>
<label>
Weapon Type:<br>
<select name="gun-type" multiple>
<option value="PISTOL">Pistol</option>
<option value="SECONDARY">Secondary</option>
<option value="WW2">WW2</option>
<option value="RIFLE">Rifle</option>
<option value="SOVIET">Soviet</option>
</select>
</label><br><br>
<button type="submit">Create</button>
<button type="button" id="weapon-cancel">Cancel</button>
</form>
</div>
</div>
<br>
<div id="guntype-filters">
<label><input type="checkbox" id="primary" value="PRIMARY"> Primary</label>