Module stuff and fixes on other items
This commit is contained in:
parent
66ed4c12cc
commit
1ec8ee6451
@ -11,6 +11,12 @@
|
||||
"TypeSpell": "Spell",
|
||||
"TypeModule": "Module",
|
||||
"TypeMoney": "Money",
|
||||
"TypeEquipment": "Equipment"
|
||||
"TypeEquipment": "Equipment",
|
||||
"TypeAction": "Action",
|
||||
"TypeFreeaction": "Free Action",
|
||||
"TypeReaction": "Reaction",
|
||||
"TypeStance": "Stance",
|
||||
"TypeTrait": "Trait",
|
||||
"TypeCondition": "Condition"
|
||||
}
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
import { Avd12Utility } from "./avd12-utility.js";
|
||||
|
||||
const __ALLOWED_MODULE_TYPES = { "action": 1, "reaction": 1, "freeaction": 1, "trait": 1 }
|
||||
|
||||
/**
|
||||
* Extend the basic ItemSheet with some very simple modifications
|
||||
* @extends {ItemSheet}
|
||||
@ -49,6 +51,15 @@ export class Avd12ItemSheet extends ItemSheet {
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
|
||||
// Specific case for formating descriptions of sub-items
|
||||
if (this.object.type == "module") {
|
||||
for (let level of this.object.system.levels) {
|
||||
for (let id in level.features) {
|
||||
level.features[id].descriptionHTML = await TextEditor.enrichHTML(level.features[id].system.description, { async: true })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let formData = {
|
||||
title: this.title,
|
||||
id: this.id,
|
||||
@ -61,6 +72,7 @@ export class Avd12ItemSheet extends ItemSheet {
|
||||
limited: this.object.limited,
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
||||
isGM: game.user.isGM
|
||||
}
|
||||
|
||||
@ -104,6 +116,58 @@ export class Avd12ItemSheet extends ItemSheet {
|
||||
});
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _onDrop(event) {
|
||||
|
||||
const levelIndex = Number($(event.toElement).data("level-index"))
|
||||
let data = event.dataTransfer.getData('text/plain')
|
||||
let dataItem = JSON.parse(data)
|
||||
let item = fromUuidSync(dataItem.uuid)
|
||||
if (item.pack) {
|
||||
item = await Avd12Utility.searchItem(item)
|
||||
}
|
||||
if (!item) {
|
||||
ui.notifications.warn("Unable to find relevant item - Aborting drag&drop " + data.uuid)
|
||||
return
|
||||
}
|
||||
if (this.object.type == "module" && __ALLOWED_MODULE_TYPES[item.type]) {
|
||||
let levels = duplicate(this.object.system.levels)
|
||||
levels[levelIndex].features[item.id] = duplicate(item)
|
||||
this.object.update({ 'system.levels': levels })
|
||||
return
|
||||
}
|
||||
ui.notifications.warn("This item is not allowed dropped here")
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async viewSubitem(ev) {
|
||||
let field = $(ev.currentTarget).data('type');
|
||||
let idx = Number($(ev.currentTarget).data('index'));
|
||||
let itemData = this.object.system[field][idx];
|
||||
if (itemData.name != 'None') {
|
||||
let spec = await Item.create(itemData, { temporary: true });
|
||||
spec.system.origin = "embeddedItem";
|
||||
new Avd12ItemSheet(spec).render(true);
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async deleteSubitem(ev) {
|
||||
let field = $(ev.currentTarget).data('type');
|
||||
let idx = Number($(ev.currentTarget).data('index'));
|
||||
let oldArray = this.object.system[field];
|
||||
let itemData = this.object.system[field][idx];
|
||||
if (itemData.name != 'None') {
|
||||
let newArray = [];
|
||||
for (var i = 0; i < oldArray.length; i++) {
|
||||
if (i != idx) {
|
||||
newArray.push(oldArray[i]);
|
||||
}
|
||||
}
|
||||
this.object.update({ [`system.${field}`]: newArray });
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
activateListeners(html) {
|
||||
@ -120,10 +184,6 @@ export class Avd12ItemSheet extends ItemSheet {
|
||||
item.sheet.render(true);
|
||||
});
|
||||
|
||||
html.find('.delete-spec').click(ev => {
|
||||
this.object.update({ "data.specialisation": [{ name: 'None' }] });
|
||||
});
|
||||
|
||||
html.find('.delete-subitem').click(ev => {
|
||||
this.deleteSubitem(ev);
|
||||
});
|
||||
@ -139,13 +199,32 @@ export class Avd12ItemSheet extends ItemSheet {
|
||||
this.viewSubitem(ev);
|
||||
});
|
||||
|
||||
html.find('.view-spec').click(ev => {
|
||||
this.manageSpec();
|
||||
});
|
||||
html.find('.add-module-level').click(ev => {
|
||||
let levels = duplicate(this.object.system.levels)
|
||||
levels.push({ features: {} })
|
||||
this.object.update({ 'system.levels': levels })
|
||||
})
|
||||
|
||||
html.find('.module-feature-delete').click(ev => {
|
||||
let levels = duplicate(this.object.system.levels)
|
||||
let levelIndex = Number($(ev.currentTarget).parents(".item").data("level-index"))
|
||||
let featureId = $(ev.currentTarget).parents(".item").data("feature-id")
|
||||
levels[levelIndex].features[featureId] = undefined
|
||||
this.object.update({ 'system.levels': levels })
|
||||
})
|
||||
|
||||
html.find('.feature-level-selected').change(ev => {
|
||||
let levels = duplicate(this.object.system.levels)
|
||||
let levelIndex = Number($(ev.currentTarget).parents(".item").data("level-index"))
|
||||
let featureId = $(ev.currentTarget).parents(".item").data("feature-id")
|
||||
for (let id in levels[levelIndex].features) {
|
||||
let feature = levels[levelIndex].features[id]
|
||||
feature.system.selected = false // Everybody to false
|
||||
}
|
||||
levels[levelIndex].features[featureId].system.selected = ev.currentTarget.value
|
||||
this.object.update({ 'system.levels': levels })
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
get template() {
|
||||
|
@ -133,6 +133,10 @@ export class Avd12Utility {
|
||||
'systems/fvtt-avd12/templates/items/partial-options-attributes.hbs',
|
||||
'systems/fvtt-avd12/templates/items/partial-options-equipment-types.hbs',
|
||||
'systems/fvtt-avd12/templates/items/partial-options-spell-types.hbs',
|
||||
'systems/fvtt-avd12/templates/items/partial-options-spell-levels.hbs',
|
||||
'systems/fvtt-avd12/templates/items/partial-options-focus-bond.hbs',
|
||||
'systems/fvtt-avd12/templates/items/partial-options-focus-treatment.hbs',
|
||||
'systems/fvtt-avd12/templates/items/partial-options-focus-core.hbs',
|
||||
]
|
||||
return loadTemplates(templatePaths);
|
||||
}
|
||||
|
@ -1299,3 +1299,10 @@ ul, li {
|
||||
min-width:2rem;
|
||||
max-width: 2rem;
|
||||
}
|
||||
|
||||
.drop-module-step {
|
||||
background: linear-gradient(to bottom, #6c95b9fc 5%, #105177ab 100%);
|
||||
background-color: #7d5d3b00;
|
||||
border-radius: 3px;
|
||||
border: 2px ridge #846109;
|
||||
}
|
||||
|
@ -3,8 +3,8 @@
|
||||
"esmodules": [
|
||||
"modules/avd12-main.js"
|
||||
],
|
||||
"gridDistance": 5,
|
||||
"gridUnits": "m",
|
||||
"gridDistance": 1,
|
||||
"gridUnits": "u",
|
||||
"languages": [
|
||||
{
|
||||
"lang": "en",
|
||||
@ -37,7 +37,7 @@
|
||||
],
|
||||
"title": "AnyVenture D12 RPG",
|
||||
"url": "https://www.uberwald.me/gitea/uberwald/fvtt-avd12",
|
||||
"version": "10.0.0",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-avd12/archive/fvtt-avd12-v10.0.0.zip",
|
||||
"version": "10.0.1",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-avd12/archive/fvtt-avd12-v10.0.1.zip",
|
||||
"background": "systems/fvtt-avd12/images/ui/avd12_welcome_page.webp"
|
||||
}
|
@ -228,7 +228,12 @@
|
||||
"weapon",
|
||||
"module",
|
||||
"money",
|
||||
"condition"
|
||||
"condition",
|
||||
"action",
|
||||
"freeaction",
|
||||
"reaction",
|
||||
"stance",
|
||||
"trait"
|
||||
],
|
||||
"templates": {
|
||||
"commonitem": {
|
||||
@ -272,12 +277,42 @@
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
"focus": {
|
||||
"isfocus": false,
|
||||
"core": "",
|
||||
"treatment": "",
|
||||
"bond": ""
|
||||
},
|
||||
"weight": 0,
|
||||
"cost": 0,
|
||||
"health": 0,
|
||||
"movespeed": 0
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"selected": false,
|
||||
"description": ""
|
||||
},
|
||||
"reaction": {
|
||||
"selected": false,
|
||||
"description": ""
|
||||
},
|
||||
"freeaction": {
|
||||
"selected": false,
|
||||
"description": ""
|
||||
},
|
||||
"stance": {
|
||||
"active": false,
|
||||
"description": ""
|
||||
},
|
||||
"trait": {
|
||||
"traittype": "",
|
||||
"computebonus": false,
|
||||
"bonusdata": "",
|
||||
"bonusvalue": 0,
|
||||
"selected": false,
|
||||
"description": ""
|
||||
},
|
||||
"skill": {
|
||||
"attribute": "",
|
||||
"value": 0,
|
||||
@ -352,6 +387,7 @@
|
||||
"description": ""
|
||||
},
|
||||
"module": {
|
||||
"levels": [],
|
||||
"description": ""
|
||||
},
|
||||
"condition": {
|
||||
|
30
templates/items/item-action-sheet.hbs
Normal file
30
templates/items/item-action-sheet.hbs
Normal file
@ -0,0 +1,30 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{> systems/fvtt-avd12/templates/items/partial-item-nav.hbs}}
|
||||
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{> systems/fvtt-avd12/templates/items/partial-item-description.hbs}}
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow">
|
||||
<label class="item-field-label-long">Selected</label>
|
||||
<input type="checkbox" class="item-field-label-short" name="system.selected" {{checked system.selected}} />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
30
templates/items/item-freeaction-sheet.hbs
Normal file
30
templates/items/item-freeaction-sheet.hbs
Normal file
@ -0,0 +1,30 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{> systems/fvtt-avd12/templates/items/partial-item-nav.hbs}}
|
||||
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{> systems/fvtt-avd12/templates/items/partial-item-description.hbs}}
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow">
|
||||
<label class="item-field-label-long">Selected</label>
|
||||
<input type="checkbox" class="item-field-label-short" name="system.selected" {{checked system.selected}} />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
@ -18,9 +18,34 @@
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
{{#each system.levels as |level index|}}
|
||||
<hr>
|
||||
<li class="flexrow">
|
||||
<label class="item-field-label-long">Level {{index}}</label>
|
||||
</li>
|
||||
<li class="flexrow">
|
||||
<div class="drop-module-step" data-level-index="{{index}}"><label data-level-index="{{index}}">Drop traits/actions/... here !</label></div>
|
||||
</li>
|
||||
|
||||
{{#each level.features as |feature id|}}
|
||||
<li class="flexrow item" data-level-index="{{../index}}" data-feature-id="{{feature._id}}" >
|
||||
<label class="item-field-label-medium">{{feature.name}}</label>
|
||||
<input type="checkbox" class="item-field-label-short feature-level-selected" {{checked feature.system.selected}} />
|
||||
<label class="item-field-label-long2">{{{feature.descriptionHTML}}}</label>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control module-feature-delete" title="Delete Feature"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
{{/each}}
|
||||
|
||||
<li class="flexrow item">
|
||||
<button class="chat-card-button add-module-level">Add a level</button>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
31
templates/items/item-reaction-sheet.hbs
Normal file
31
templates/items/item-reaction-sheet.hbs
Normal file
@ -0,0 +1,31 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{> systems/fvtt-avd12/templates/items/partial-item-nav.hbs}}
|
||||
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{> systems/fvtt-avd12/templates/items/partial-item-description.hbs}}
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow">
|
||||
<label class="item-field-label-long">Selected</label>
|
||||
<input type="checkbox" class="item-field-label-short" name="system.selected" {{checked system.selected}} />
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
31
templates/items/item-stance-sheet.hbs
Normal file
31
templates/items/item-stance-sheet.hbs
Normal file
@ -0,0 +1,31 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{> systems/fvtt-avd12/templates/items/partial-item-nav.hbs}}
|
||||
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{> systems/fvtt-avd12/templates/items/partial-item-description.hbs}}
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow">
|
||||
<label class="item-field-label-long">Active</label>
|
||||
<input type="checkbox" class="item-field-label-short" name="system.active" {{checked system.active}} />
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
58
templates/items/item-trait-sheet.hbs
Normal file
58
templates/items/item-trait-sheet.hbs
Normal file
@ -0,0 +1,58 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{> systems/fvtt-avd12/templates/items/partial-item-nav.hbs}}
|
||||
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{> systems/fvtt-avd12/templates/items/partial-item-description.hbs}}
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow">
|
||||
<label class="item-field-label-long">Type of trait</label>
|
||||
<select class="item-field-label-long" type="text" name="system.traittype" value="{{system.traittype}}" data-dtype="String">
|
||||
{{#select system.traittype}}
|
||||
<option value="traitonly">Trait only</option>
|
||||
<option value="traitbonus">Trait with bonus or spells</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
{{#if (eq system.traittype "traitbonus")}}
|
||||
<li class="flexrow">
|
||||
<label class="item-field-label-long">Bonus automation</label>
|
||||
<input type="checkbox" class="item-field-label-short" name="system.computebonus" {{checked system.computebonus}} />
|
||||
</li>
|
||||
{{#if system.computebonus}}
|
||||
<li class="flexrow">
|
||||
|
||||
<label class="item-field-label-long">Bonus path</label>
|
||||
<input type="text" class="item-field-label-medium" name="system.bonusdata" value="{{system.bonusdata}}" data-dtype="String"/>
|
||||
</li>
|
||||
<li class="flexrow">
|
||||
<label class="item-field-label-long">Bonus value</label>
|
||||
<input type="text" class="item-field-label-short" name="system.bonusvalue" value="{{system.bonusvalue}}" data-dtype="Number"/>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
<li class="flexrow">
|
||||
<label class="item-field-label-long">Selected</label>
|
||||
<input type="checkbox" class="item-field-label-short" name="system.selected" {{checked system.selected}} />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
@ -91,6 +91,33 @@
|
||||
{{/each}}
|
||||
</li>
|
||||
|
||||
<li class='flexrow'>
|
||||
<h3 class='item-field-label-long'>
|
||||
Focus
|
||||
</h3>
|
||||
<input type="checkbox" class="item-field-label-short" name="system.focus.isfocus" {{checked system.focus.isfocus}} />
|
||||
</li>
|
||||
|
||||
{{#if system.focus.isfocus}}
|
||||
<li class='flexrow'>
|
||||
<select class="item-field-label-long" type="text" name="system.focus.core" value="{{system.focus.core}}" data-dtype="String">
|
||||
{{#select system.focus.core}}
|
||||
{{> systems/fvtt-avd12/templates/items/partial-options-focus-core.hbs}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<select class="item-field-label-long" type="text" name="system.focus.treatment" value="{{system.focus.treatment}}" data-dtype="String">
|
||||
{{#select system.focus.treatment}}
|
||||
{{> systems/fvtt-avd12/templates/items/partial-options-focus-treatment.hbs}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<select class="item-field-label-long" type="text" name="system.focus.bond" value="{{system.focus.bond}}" data-dtype="String">
|
||||
{{#select system.focus.bond}}
|
||||
{{> systems/fvtt-avd12/templates/items/partial-options-focus-bond.hbs}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
{{/if}}
|
||||
|
||||
<li class='flexrow'>
|
||||
<h3 class='item-field-label-long'>
|
||||
Various
|
||||
|
8
templates/items/partial-options-focus-bond.hbs
Normal file
8
templates/items/partial-options-focus-bond.hbs
Normal file
@ -0,0 +1,8 @@
|
||||
<option value="bondnone">Bond: None</option>
|
||||
<option value="bondeasy">Bond: Easy</option>
|
||||
<option value="bondcommon">Bond: Common</option>
|
||||
<option value="bonduncommon">Bond: Uncommon</option>
|
||||
<option value="bondrare">Bond: Rare</option>
|
||||
<option value="bondlegendary">Bond: Legendary</option>
|
||||
<option value="bondmythic">Bond: Mythic</option>
|
||||
<option value="bonddivine">Bond: Divine</option>
|
9
templates/items/partial-options-focus-core.hbs
Normal file
9
templates/items/partial-options-focus-core.hbs
Normal file
@ -0,0 +1,9 @@
|
||||
<option value="corenone">Core: None</option>
|
||||
<option value="core1gp">Core: 1GP</option>
|
||||
<option value="core5gp">Core: 5GP</option>
|
||||
<option value="core50gp">Core: 50GP</option>
|
||||
<option value="core100gp">Core: 100GP</option>
|
||||
<option value="core300gp">Core: 300GP</option>
|
||||
<option value="core500gp">Core: 500GP</option>
|
||||
<option value="core800gp">Core: 800GP</option>
|
||||
<option value="core1000gp">Core: 1000GP</option>
|
9
templates/items/partial-options-focus-treatment.hbs
Normal file
9
templates/items/partial-options-focus-treatment.hbs
Normal file
@ -0,0 +1,9 @@
|
||||
<option value="treatmentnone">Treatment: None</option>
|
||||
<option value="treatment1gp">Treatment: Tin [1 GP]</option>
|
||||
<option value="treatment4gp">Treatment: Copper [4 GP]</option>
|
||||
<option value="treatment20gp">Treatment: Iron [20 GP]</option>
|
||||
<option value="treatment50gp">Treatment: Silver [50 GP]</option>
|
||||
<option value="treatment500gp">Treatment: Gold [500 GP]</option>
|
||||
<option value="treatment1000gp">Treatment: Platinum [1000 GP]</option>
|
||||
<option value="treatment5000gp">Treatment: Mithral [5000 GP]</option>
|
||||
<option value="treatment10000gp">Treatment: Starsteel [10000 GP]</option>
|
@ -1,3 +1,4 @@
|
||||
<option value="unarmed">Unarmed</option>
|
||||
<option value="ranged">Ranged</option>
|
||||
<option value="blunt">Blunt</option>
|
||||
<option value="slash">Slash</option>
|
||||
|
Reference in New Issue
Block a user