|
|
|
@@ -1,11 +1,6 @@ |
|
|
|
<template> |
|
|
|
<div class="equipment-view"> |
|
|
|
<div v-if="subject.equipment[EquipmentSlot.Head] !== undefined" class="equipment-slot equipment-head">{{ subject.equipment[EquipmentSlot.Head].name.capital.all }}</div> |
|
|
|
<div v-if="subject.equipment[EquipmentSlot.Chest] !== undefined" class="equipment-slot equipment-chest">{{ subject.equipment[EquipmentSlot.Chest].name.capital.all }}</div> |
|
|
|
<div v-if="subject.equipment[EquipmentSlot.MainHand] !== undefined" class="equipment-slot equipment-main-hand">{{ subject.equipment[EquipmentSlot.MainHand].name.capital.all }}</div> |
|
|
|
<div v-if="subject.equipment[EquipmentSlot.OffHand] !== undefined" class="equipment-slot equipment-off-hand">{{ subject.equipment[EquipmentSlot.OffHand].name.capital.all }}</div> |
|
|
|
<div v-if="subject.equipment[EquipmentSlot.Legs] !== undefined" class="equipment-slot equipment-legs">{{ subject.equipment[EquipmentSlot.Legs].name.capital.all }}</div> |
|
|
|
<div v-if="subject.equipment[EquipmentSlot.Feet] !== undefined" class="equipment-slot equipment-feet">{{ subject.equipment[EquipmentSlot.Feet].name.capital.all }}</div> |
|
|
|
<button @click="unequip(slot)" :class="equipmentClass(slot)" :style="equipmentCss(slot)" v-for="slot in Object.keys(EquipmentSlot)" :key="slot">{{ subject.equipment[slot] === undefined ? slot : subject.equipment[slot].name.capital.all }}</button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
@@ -28,6 +23,63 @@ import { Item, ItemKindIcons, ItemKind, EquipmentSlot } from '@/game/items' |
|
|
|
export default class ItemView extends Vue { |
|
|
|
@Prop({ required: true }) |
|
|
|
subject!: Creature |
|
|
|
|
|
|
|
unequip (slot: EquipmentSlot) { |
|
|
|
this.subject.unequip(slot) |
|
|
|
} |
|
|
|
|
|
|
|
equipmentClass (slot: EquipmentSlot) { |
|
|
|
const classes: string[] = [] |
|
|
|
classes.push("equipment-slot") |
|
|
|
|
|
|
|
if (this.subject.equipment[slot] !== undefined) { |
|
|
|
classes.push("equipment-slot-active") |
|
|
|
} else { |
|
|
|
classes.push("equipment-slot-empty") |
|
|
|
} |
|
|
|
|
|
|
|
return classes.reduce((info: any, cls: string) => { info[cls] = true; return info }, {}) |
|
|
|
} |
|
|
|
|
|
|
|
equipmentCss (slot: EquipmentSlot) { |
|
|
|
const css = { |
|
|
|
top: "", |
|
|
|
left: "" |
|
|
|
} |
|
|
|
|
|
|
|
switch (slot) { |
|
|
|
case EquipmentSlot.Head: |
|
|
|
css.top = "10%" |
|
|
|
css.left = "50%" |
|
|
|
break |
|
|
|
case EquipmentSlot.Chest: |
|
|
|
css.top = "35%" |
|
|
|
css.left = "25%" |
|
|
|
break |
|
|
|
case EquipmentSlot.Arms: |
|
|
|
css.top = "35%" |
|
|
|
css.left = "75%" |
|
|
|
break |
|
|
|
case EquipmentSlot.MainHand: |
|
|
|
css.top = "60%" |
|
|
|
css.left = "15%" |
|
|
|
break |
|
|
|
case EquipmentSlot.OffHand: |
|
|
|
css.top = "60%" |
|
|
|
css.left = "85%" |
|
|
|
break |
|
|
|
case EquipmentSlot.Legs: |
|
|
|
css.top = "60%" |
|
|
|
css.left = "50%" |
|
|
|
break |
|
|
|
case EquipmentSlot.Feet: |
|
|
|
css.top = "90%" |
|
|
|
css.left = "50%" |
|
|
|
break |
|
|
|
} |
|
|
|
|
|
|
|
return css |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
</script> |
|
|
|
@@ -47,36 +99,23 @@ export default class ItemView extends Vue { |
|
|
|
height: 3rem; |
|
|
|
border-width: 5px; |
|
|
|
border-style: outset; |
|
|
|
transform: translate(-50%, -50%) |
|
|
|
} |
|
|
|
|
|
|
|
.equipment-head { |
|
|
|
top: 10%; |
|
|
|
left: 50%; |
|
|
|
} |
|
|
|
|
|
|
|
.equipment-chest { |
|
|
|
top: 30%; |
|
|
|
left: 50%; |
|
|
|
} |
|
|
|
|
|
|
|
.equipment-main-hand { |
|
|
|
top: 20%; |
|
|
|
left: 30%; |
|
|
|
transform: translate(-50%, -50%); |
|
|
|
background: #333; |
|
|
|
color: #eee; |
|
|
|
margin: 0px; |
|
|
|
padding: 0px; |
|
|
|
} |
|
|
|
|
|
|
|
.equipment-off-hand { |
|
|
|
top: 20%; |
|
|
|
left: 70%; |
|
|
|
.equipment-slot-active:hover { |
|
|
|
background: #555; |
|
|
|
} |
|
|
|
|
|
|
|
.equipment-legs { |
|
|
|
top: 60%; |
|
|
|
left: 50%; |
|
|
|
.equipment-slot-active:active { |
|
|
|
background: #555; |
|
|
|
border-style: inset; |
|
|
|
} |
|
|
|
|
|
|
|
.equipment-feet { |
|
|
|
top: 80%; |
|
|
|
left: 50%; |
|
|
|
.equipment-slot-empty { |
|
|
|
color: #666; |
|
|
|
} |
|
|
|
</style> |