added weapon creater
This commit is contained in:
@@ -540,6 +540,64 @@ document.querySelectorAll('#guntype-filters input').forEach(checkbox => {
|
|||||||
checkbox.addEventListener('change', filterWeapons);
|
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
|
// Initialize
|
||||||
fetchWeaponsData();
|
fetchWeaponsData();
|
||||||
|
|||||||
@@ -32,6 +32,57 @@
|
|||||||
<select id="weapon-select" name="weapons">
|
<select id="weapon-select" name="weapons">
|
||||||
<option value="">Select a Weapon</option>
|
<option value="">Select a Weapon</option>
|
||||||
</select>
|
</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>
|
<br>
|
||||||
<div id="guntype-filters">
|
<div id="guntype-filters">
|
||||||
<label><input type="checkbox" id="primary" value="PRIMARY"> Primary</label>
|
<label><input type="checkbox" id="primary" value="PRIMARY"> Primary</label>
|
||||||
|
|||||||
Reference in New Issue
Block a user