FV Battling

QOL improvements for the warrior career

  1. /* ==UserStyle==
  2. @name FV Battling
  3. @namespace https://gf.qytechs.cn/en/scripts/407409-fv-battling
  4. @description QOL improvements for the warrior career
  5. @version 1.0.8
  6. ==/UserStyle== */
  7.  
  8. @-moz-document url-prefix("https://www.furvilla.com/career/warrior/battle") {
  9.  
  10. /* ==========================================================================
  11. Header
  12. ========================================================================== */
  13. /* shrinks the header */
  14. header {
  15. height: 78px;
  16. }
  17.  
  18. /* shrinks the header (moving top part of navigation to proper position) */
  19. header nav {
  20. top: 0;
  21. border-radius: 0;
  22. }
  23.  
  24. /* moves the search bar to where the logo used to be */
  25. header .search-form {
  26. top: 6px;
  27. left: 6px;
  28. }
  29. /* hiding unnecessary content - alerts, logo, header, ads, shopkeeper*/
  30. /* (logo and breadcrumbs removed because both link to Town Hall - which already has a link) */
  31. .margin-10px, #logo, .modal-content .logo, .stat-panel .text-center:first-child, .stat-panel .text-center:first-child img, .battle-complete > br, .equipment-wrap > br, .left-column > br, .right-column .widget-header, .battle-end-stats .registration-well > .row:nth-child(5), .battle-end-stats .registration-well > .row:nth-child(7) {
  32. display: none;
  33. }
  34.  
  35. /* ==========================================================================
  36. Notifications
  37. ========================================================================== */
  38. /*shrinks notifications widget*/
  39. .notifications-widget {
  40. height: 32px;
  41. width: 116px;
  42. overflow: hidden;
  43. position: absolute;
  44. left: -74px;
  45. top: 54px;
  46. -ms-transform: rotate(270deg);
  47. -webkit-transform: rotate(270deg);
  48. transform: rotate(270deg);
  49. z-index: 10;
  50. }
  51.  
  52. /*expands notifications widget on mouseover*/
  53. .notifications-widget:hover {
  54. height: auto;
  55. width: auto;
  56. left: -32px;
  57. top: 0;
  58. z-index: 121;
  59. -ms-transform: rotate(0deg);
  60. -webkit-transform: rotate(0deg);
  61. transform: rotate(0deg);
  62. padding: 10px 10px 0 42px;
  63. overflow: visible;
  64. }
  65.  
  66. /*keeps notifications header still on mouseover*/
  67. .notifications-widget:hover .widget-header {
  68. -ms-transform: rotate(270deg);
  69. -webkit-transform: rotate(270deg);
  70. transform: rotate(270deg);
  71. position: absolute;
  72. z-index: 10;
  73. left: -42px;
  74. top: 54px;
  75. border: 0;
  76. }
  77.  
  78. /*keeps notifications header visible on smaller screens*/
  79. @media screen and (max-width: 1054px) {
  80. .notifications-widget {
  81. transform: none;
  82. top: -32px;
  83. left: 400px;
  84. }
  85.  
  86. .notifications-widget:hover .widget-header {
  87. transform: none;
  88. left: 432px;
  89. top: -32px;
  90. }
  91. }
  92.  
  93. /* ==========================================================================
  94. Right column
  95. ========================================================================== */
  96. /* full width */
  97. .content .right-column {
  98. width: 950px;
  99. margin-top: 50px;
  100. }
  101.  
  102. /* horizontal adjustments */
  103. .right-column .widget, .widget .text-center {
  104. float: left;
  105. margin: 0;
  106. }
  107.  
  108. /* horizontal adjustments */
  109. .widget:first-child .text-center {
  110. float: none;
  111. }
  112.  
  113. /* horizontal adjustments */
  114. .widget .text-center div:last-child {
  115. display: block !important;
  116. width: 50px;
  117. height: 50px;
  118. margin: 0 7px 7px;
  119. }
  120.  
  121. /* hides excess text from first widget */
  122. .widget h4, .widget:first-child p {
  123. font-size: 0;
  124. }
  125. .widget h4 a, .widget:first-child p a, .widget:first-child p strong, .widget:first-child p b {
  126. font-size: 14px;
  127. }
  128.  
  129. /* shrink user avatar */
  130. .widget img {
  131. height: 64px;
  132. max-height: 100%;
  133. margin-bottom: 5px;
  134. }
  135.  
  136. /* shrink villager and career images */
  137. .widget .villager-avatar {
  138. width: 50px;
  139. height: 50px;
  140. margin: 7px;
  141. }
  142.  
  143. /* currency images */
  144. .widget:first-child p:nth-child(3) img {
  145. display: block;
  146. margin: -24px 0 0;
  147. height: auto;
  148. }
  149. /* spacing */
  150. .right-column .widget:first-child {
  151. margin: 0 45px;
  152. }
  153. /* horizontal adjustments */
  154. .widget .forum-posts li {
  155. float: left;
  156. width: 190px;
  157. padding: 20px;
  158. background: none !important;
  159. font-size: 12px !important;
  160. border-bottom: none;
  161. text-align: right;
  162. }
  163.  
  164. /* fairy buffs */
  165. .widget .forum-posts {
  166. position: absolute;
  167. left: -412px;
  168. background: #fff;
  169. }
  170.  
  171. /* fairy buffs */
  172. .recent-posts .forum-posts {
  173. position: relative;
  174. left: 0;
  175. }
  176.  
  177. /* fairy buffs */
  178. .recent-posts .forum-posts li {
  179. text-align: center;
  180. }
  181.  
  182. /* horizontal adjustments for unemployed villagers */
  183. .widget .text-center .villager-avatar:only-child {
  184. margin-top: 7px;
  185. }
  186.  
  187. /* aesthetic adjustments */
  188. .right-column .widget-content {
  189. background: none;
  190. }
  191.  
  192. /* ==========================================================================
  193. Battling adjustments
  194. ========================================================================== */
  195. /*moves the monster's stats to the right + minor aesthetic changes*/
  196. .enemy-panel-wrap .stat-panel {
  197. display: block !important;
  198. border: none;
  199. width: 215px;
  200. position: absolute;
  201. top: 0;
  202. right: -234px;
  203. margin: 0;
  204. cursor: pointer !important;
  205. z-index: 89;
  206. overflow: auto;
  207. height: 465px;
  208. }
  209.  
  210. /*shrinks the monster's description*/
  211. .stat-panel .text-center:nth-child(2) {
  212. font-size: 12px;
  213. line-height: 1.5em;
  214. height: 72px;
  215. overflow: auto;
  216. }
  217.  
  218. /*consistent monster sizing*/
  219. .charimage {
  220. transform: none !important;
  221. max-height: 226px;
  222. }
  223. .monster-panel {
  224. transform: none;
  225. }
  226.  
  227.  
  228. /*PVP opponent villager profile link*/
  229. .enemy-panel-wrap .text-center:first-child {
  230. display: block;
  231. margin: 0;
  232. }
  233. .enemy-panel-wrap .text-center:first-child .villager-avatar {
  234. height: auto;
  235. width: auto;
  236. border-radius: 0;
  237. }
  238. .enemy-panel-wrap .text-center:first-child .villager-avatar a:before {
  239. content: "link to villager profile"
  240. }
  241.  
  242. /*shrinks margins*/
  243. .stat-panel hr {
  244. margin: 6px 0;
  245. }
  246.  
  247. /*turns the stats into a single column*/
  248. .stat-panel > .row > .col-sm-6 {
  249. width: 100%;
  250. }
  251.  
  252. /* moves progress bars under monster's stats */
  253. .battle-end-stats .registration-well > .row:nth-child(2),
  254. .battle-end-stats .registration-well > .row:nth-child(3),
  255. .battle-end-stats .registration-well > .row:nth-child(4) {
  256. margin: 0 !important;
  257. position: absolute;
  258. top: 505px;
  259. right: 20px;
  260. width: 215px;
  261. }
  262.  
  263. /* moves progress bars under monster's stats */
  264. .battle-end-stats .registration-well > .row:nth-child(3) {
  265. top: 529px;
  266. }
  267.  
  268. /* moves progress bars under monster's stats */
  269. .battle-end-stats .registration-well > .row:nth-child(4) {
  270. top: 553px;
  271. }
  272.  
  273. /*condenses things down to five abilities per row*/
  274. .equipment-slot {
  275. margin: 0 11px 20px 0;
  276. border: 0;
  277. width: 130px;
  278. height: 180px;
  279. vertical-align: top;
  280. padding: 6px;
  281. position: relative;
  282. }
  283.  
  284. /*spacing equipment slots*/
  285. .equipment-wrap {
  286. overflow: hidden;
  287. }
  288.  
  289. /*spacing equipment slots*/
  290. .equipment-wrap .row {
  291. padding: 0;
  292. margin: 0;
  293. }
  294.  
  295. /*spacing equipment slots*/
  296. .equipment-slot:last-child {
  297. margin-right: 0;
  298. }
  299.  
  300. /*move charge counter + readability */
  301. .equipment-slot .label-info {
  302. position: absolute;
  303. top: 0;
  304. right: 0;
  305. background: none;
  306. color: #3b4e51;
  307. font-size: 16px;
  308. height: 24px;
  309. line-height: 20px;
  310. border: 1px solid #37317e;
  311. padding: 0 6px;
  312. }
  313.  
  314. /*condenses loot*/
  315. .battle-loots {
  316. margin: 15px 0 0;
  317. padding: 0;
  318. }
  319.  
  320. /*condenses loot*/
  321. .battle-loot {
  322. height: auto;
  323. }
  324.  
  325. /*consumables*/
  326. .battle-end-stats .row.text-center {
  327. position: absolute;
  328. top: 649px;
  329. right: 20px;
  330. width: 215px;
  331. margin: 0;
  332. font-size: 0;
  333. }
  334.  
  335. /*consumables*/
  336. .battle-end-stats .row.text-center img {
  337. max-width: 70px;
  338. }
  339.  
  340. /* back to warrior button */
  341. .battle-complete > p .btn {
  342. position: absolute;
  343. right: 20px;
  344. width: 215px;
  345. top: 597px;
  346. }
  347.  
  348. /* continue battling - sizing */
  349. .battle-complete > p > .btn[href*="generate"] {
  350. position: absolute;
  351. top: 377px;
  352. width: 716px;
  353. left: 20px;
  354. height: 86px;
  355. line-height: 86px;
  356. }
  357.  
  358. /* continue battling from open modal */
  359. .modal-open .battle-complete > p > .btn[href*="generate"] {
  360. position: fixed;
  361. z-index: 1051;
  362. width: 200px;
  363. top: 0;
  364. right: calc(50% - 500px);
  365. height: 100%;
  366. line-height: 100vh;
  367. margin: 0;
  368. left: initial;
  369. }
  370.  
  371. /* readability adjustments */
  372. .whitetext h4, .effects {
  373. text-shadow: 2px -2px #000, 2px -1px #000, 2px 0 #000, 2px 1px #000, 2px 2px #000, 1px -2px #000, 1px -1px #000, 1px 0 #000, 1px 1px #000, 1px 2px #000, 0 -2px #000, 0 -1px #000, 0 0 #000, 0 1px #000, 0 2px #000, -1px -2px #000, -1px -1px #000, -1px 0 #000, -1px 1px #000, -1px 2px #000, -2px -2px #000, -2px -1px #000, -2px 0 #000, -2px 1px #000, -2px 2px #000;
  374. }
  375.  
  376. /*aesthetic changes*/
  377. .enemy-panel-wrap .stat-panel,
  378. .equipment-slot,
  379. .pass-span,
  380. .flee-span,
  381. .equipment-slot:hover,
  382. .pass-span:hover,
  383. .flee-span:hover,
  384. .battle-log {
  385. background: rgba(255,255,255, .5);
  386. }
  387.  
  388. /*aesthetic changes*/
  389. .top-panel-wrap, .top-panel-wrap-pvp, .top-panel-wrap-pvp-foxbury {
  390. height: 335px;
  391. background-position: bottom;
  392. margin-bottom: 20px;
  393. }
  394.  
  395. /* aesthetic changes */
  396. .battleground-wrap {
  397. bottom: initial;
  398. }
  399.  
  400. /* pvp village crest */
  401. .stat-panel-toggle > .text-center > div:first-child {
  402. top: 165px;
  403. font-size: 0;
  404. }
  405.  
  406. /*fv does weird things when screens get small*/
  407. /*they pretend it makes things "responsive"*/
  408. /*it doesn't*/
  409. .col-sm-6 {
  410. width: 50%;
  411. float: left;
  412. }
  413.  
  414. /*button spacing*/
  415. .battle-complete > p {
  416. height: 96px;
  417. }
  418.  
  419.  
  420. /* battle effects */
  421. .underlay, .overlay {
  422. height: 226px;
  423. transform: none !important;
  424. }
  425. .enemy-panel-wrap .underlay, .enemy-panel-wrap .overlay {
  426. transform: none !important;
  427. }
  428. .underlay img, .overlay img {
  429. max-height: 226px;
  430. width: auto !important;
  431. }
  432.  
  433. /* ==========================================================================
  434. Modal consumables
  435. ========================================================================== */
  436. /* modal spacing */
  437. .modal {
  438. padding: 0 !important;
  439. }
  440.  
  441. /* consumables */
  442. .modal-open .battle-end-stats .row.text-center a {
  443. position: fixed;
  444. z-index: 2050;
  445. top: 100px;
  446. height: 50px;
  447. width: 50px;
  448. background: none;
  449. left: calc(50% - 300px);
  450. }
  451.  
  452. /* image resizing */
  453. .modal-open .battle-end-stats .row.text-center a img {
  454. display: block;
  455. width: 100%;
  456. }
  457.  
  458. /* candycorn */
  459. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/1894"] {
  460. left: calc(50% - 197px);
  461. }
  462.  
  463. /* elixir */
  464. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/2183"] {
  465. left: calc(50% - 146px);
  466. }
  467.  
  468. /* mini hp potion */
  469. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/575"] {
  470. left: calc(50% - 249px);
  471. }
  472.  
  473. /* wax lips */
  474. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/3843"] {
  475. left: calc(50% - 95px);
  476. }
  477.  
  478. /* dew */
  479. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/4275"] {
  480. left: calc(50% - 44px);
  481. }
  482.  
  483. /*positions buttons on smaller screens*/
  484. @media screen and (max-width: 900px) {
  485. .modal-open .battle-complete > p > .btn[href*="generate"] {
  486. top: 30px;
  487. height: 170px;
  488. line-height: 170px;
  489. right: 0;
  490. left: 0;
  491. width: 253px;
  492. margin: 0 auto;
  493. }
  494.  
  495. /* candycorn */
  496. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/1894"] {
  497. left: calc(50% - 198px);
  498. }
  499.  
  500. /* elixir */
  501. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/2183"] {
  502. left: calc(50% + 134px);
  503. }
  504.  
  505. /* wax lips */
  506. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/3843"] {
  507. left: calc(50% + 185px);
  508. }
  509.  
  510. /* dew */
  511. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/4275"] {
  512. left: calc(50% + 237px);
  513. }
  514. }
  515.  
  516. @media screen and (max-width: 600px) {
  517. .modal-header .modal-title {
  518. max-width: 253px;
  519. margin: 0 auto;
  520. }
  521.  
  522. /* hp potion */
  523. .modal-open .battle-end-stats .row.text-center a {
  524. left: calc(50% - 213px);
  525. top: 200px;
  526. }
  527.  
  528. /* mini hp potion */
  529. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/575"] {
  530. position: fixed;
  531. left: calc(50% - 213px);
  532. top: 149px;
  533. }
  534.  
  535. /* candycorn */
  536. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/1894"] {
  537. left: calc(50% - 213px);
  538. top: 98px;
  539. }
  540.  
  541. /* elixir */
  542. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/2183"] {
  543. left: calc(50% + 164px);
  544. top: 100px;
  545. }
  546.  
  547. /* wax lips */
  548. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/3843"] {
  549. left: calc(50% + 164px);
  550. top: 150px;
  551. }
  552.  
  553. /* dew */
  554. .modal-open .battle-end-stats .row.text-center a[data-url^="/use/warrior-hp-charge/4275"] {
  555. left: calc(50% + 164px);
  556. }
  557. }
  558.  
  559. /*spacing fix for button placement*/
  560. .enemy-panel-wrap, .warrior-panel {
  561. margin-bottom: 20px;
  562. }
  563.  
  564. /*disable sliding animation*/
  565. .equipment-loader {
  566. margin-left: 1000px !important;
  567. }
  568. .equipment-slots {
  569. margin-left: 0 !important;
  570. }
  571.  
  572. /*[[collapse]]*/
  573. }
  574.  
  575. @-moz-document url-prefix("https://www.furvilla.com/tourney") {
  576. /*sets up the counter*/
  577. .registration-well + .widget tbody,
  578. .fur-idol-big + .widget tbody {
  579. counter-reset: row-num;
  580. }
  581.  
  582. /*increments the counter each row*/
  583. .registration-well + .widget tbody tr,
  584. .fur-idol-big + .widget tbody tr {
  585. counter-increment: row-num;
  586. }
  587.  
  588. /*displays the counter*/
  589. .registration-well + .widget tbody td:first-child::before,
  590. .fur-idol-big + .widget tbody td:first-child::before {
  591. content: counter(row-num) ".";
  592. width: 30px;
  593. display: inline-block;
  594. }
  595.  
  596. /*alignment*/
  597. .registration-well + .widget tbody td:first-child,
  598. .fur-idol-big + .widget tbody td:first-child{
  599. margin-left: -109px;
  600. }
  601.  
  602. /*alignment*/
  603. .registration-well + .widget th:first-child,
  604. .fur-idol-big + .widget th:first-child{
  605. padding-left: 38px;
  606. }
  607. }
  608.  
  609. @-moz-document url-prefix("https://www.furvilla.com/career/blacksmith/") {
  610. /* reduce flickering when scrapping quickly */
  611. .modal-content {
  612. min-height: 540px;
  613. }
  614.  
  615. /*let's you continue scrapping without closing the modal*/
  616. .modal-open .btn[data-url*="scrap/"] {
  617. position: fixed;
  618. z-index: 9999;
  619. top: 0;
  620. right: calc(50% - 443px);
  621. height: 100%;
  622. line-height: 100vh;
  623. }
  624.  
  625. /*let's you continue scrapping without closing the modal*/
  626. .widget-content {
  627. z-index: initial;
  628. }
  629.  
  630. .inventory-block-confirm-button {
  631. float: right;
  632. }
  633.  
  634. .inventory-block-selected-cancel {
  635. float: left !important;
  636. }
  637.  
  638. /*positions button on smaller screens*/
  639. @media screen and (max-width: 900px) {
  640. .modal-open .btn[data-url*="scrap/"] {
  641. top: 30px;
  642. height: 170px;
  643. line-height: 170px;
  644. right: 0;
  645. left: 0;
  646. width: 500px;
  647. margin: 0 auto;
  648. }
  649. }
  650.  
  651. /*positions button on even smaller screens*/
  652. @media screen and (max-width: 500px) {
  653. .modal-open .btn[data-url*="scrap/"] {
  654. width: 100%;
  655. }
  656. }
  657. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址