Feast 2.0!
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 

116 строки
2.4 KiB

  1. <template>
  2. <div id="app">
  3. <Header version="pre-alpha" />
  4. <Combat :left="left" :right="right" :combatants="combatants" />
  5. </div>
  6. </template>
  7. <script lang="ts">
  8. import { Component, Vue, Prop } from 'vue-property-decorator'
  9. import Combat from './components/Combat.vue'
  10. import Header from './components/Header.vue'
  11. import * as Creatures from '@/game/creatures'
  12. import { Creature, POV } from '@/game/entity'
  13. import { ProperNoun } from '@/game/language'
  14. @Component({
  15. components: {
  16. Combat, Header
  17. }
  18. })
  19. export default class App extends Vue {
  20. left: Creature
  21. right: Creature
  22. combatants: Array<Creature>
  23. constructor () {
  24. super()
  25. this.left = new Creatures.Wolf()
  26. this.left.name = new ProperNoun("Wolf")
  27. this.right = new Creatures.Cafat()
  28. const wolf1 = new Creatures.Wolf()
  29. wolf1.name = new ProperNoun("Innermost Wolf")
  30. const wolf2 = new Creatures.Wolf()
  31. wolf2.name = new ProperNoun("Inner Wolf")
  32. this.combatants = [this.left, this.right, wolf1, wolf2]
  33. this.left.perspective = POV.First
  34. console.log(this.left)
  35. console.log(this.right)
  36. }
  37. }
  38. </script>
  39. <style>
  40. body, html {
  41. background: #181818;
  42. width: 100%;
  43. height: 100%;
  44. overflow-x: hidden;
  45. }
  46. #app {
  47. font-family: Avenir, Helvetica, Arial, sans-serif;
  48. -webkit-font-smoothing: antialiased;
  49. -moz-osx-font-smoothing: grayscale;
  50. text-align: center;
  51. color: #ddd;
  52. background: #111;
  53. width: 100%;
  54. max-width: 1000pt;
  55. margin: auto;
  56. height: 100%;
  57. display: flex;
  58. flex-direction: column;
  59. }
  60. .stat-entry {
  61. position: relative;
  62. }
  63. .stat-entry::after {
  64. opacity: 0;
  65. position: absolute;
  66. color: #eee;
  67. font-size: 0pt;
  68. content: attr(data-tooltip);
  69. transition: 0.1s;
  70. pointer-events: none;
  71. left: 0pt;
  72. top: 0pt;
  73. transform: translate(calc(-50% + 16pt), -100%);
  74. background: #555;
  75. padding: 8pt;
  76. border-radius: 8pt;
  77. z-index: 1;
  78. }
  79. .stat-entry:hover::after {
  80. font-size: 18pt;
  81. opacity: 1;
  82. }
  83. .stat-entry::before {
  84. opacity: 0;
  85. position: absolute;
  86. color: #eee;
  87. font-size: 0pt;
  88. content: attr(data-tooltip-full);
  89. pointer-events: none;
  90. left: 0pt;
  91. top: 0pt;
  92. transform: translate(calc(-50% + 16pt), calc(-100% - 18pt - 16pt));
  93. white-space: nowrap;
  94. transition: 0.1s;
  95. background: #555;
  96. padding: 8pt;
  97. border-radius: 8pt;
  98. z-index: 1;
  99. }
  100. .stat-entry:hover::before {
  101. font-size: 12pt;
  102. transition: all 1s cubic-bezier(1, 0, 0.75, 0);
  103. opacity: 1;
  104. }
  105. </style>