8 次代码提交 7b0067f296 ... 8018360c44

作者 SHA1 备注 提交日期
  DricomDragon 8018360c44 :paint: Keep pixel art aspect 2 月之前
  DricomDragon e1c65f8537 :paint: Increase image size 2 月之前
  DricomDragon 81b68357b3 :truck: Make images local 2 月之前
  DricomDragon 232cd0dd92 :memo: Add move range, native squad and img 2 月之前
  DricomDragon 2e7a65cdd1 :paint: Fix label style to make it closer to field 2 月之前
  DricomDragon aced265e09 :wrench: Make the squad name customizable 2 月之前
  DricomDragon 69ba2cb5b8 :beetle: Fix key warning for children 2 月之前
  DricomDragon f04fe20688 :wrench: Shorten default description 2 月之前
共有 65 个文件被更改,包括 771 次插入382 次删除
  1. 二进制
      dev-front/public/img/Arachnoid_Mech.png
  2. 二进制
      dev-front/public/img/Bombling_Mech.png
  3. 二进制
      dev-front/public/img/Bulk_Mech.png
  4. 二进制
      dev-front/public/img/Control_Mech.png
  5. 二进制
      dev-front/public/img/Dispersal_Mech.png
  6. 二进制
      dev-front/public/img/Drill_Mech.png
  7. 二进制
      dev-front/public/img/Exchange_Mech.png
  8. 二进制
      dev-front/public/img/Mech_artillery.png
  9. 二进制
      dev-front/public/img/Mech_charge.png
  10. 二进制
      dev-front/public/img/Mech_dstrike.png
  11. 二进制
      dev-front/public/img/Mech_electric.png
  12. 二进制
      dev-front/public/img/Mech_flame.png
  13. 二进制
      dev-front/public/img/Mech_grav.png
  14. 二进制
      dev-front/public/img/Mech_guard.png
  15. 二进制
      dev-front/public/img/Mech_ice.png
  16. 二进制
      dev-front/public/img/Mech_ignite.png
  17. 二进制
      dev-front/public/img/Mech_jet.png
  18. 二进制
      dev-front/public/img/Mech_judo.png
  19. 二进制
      dev-front/public/img/Mech_laser.png
  20. 二进制
      dev-front/public/img/Mech_leap.png
  21. 二进制
      dev-front/public/img/Mech_mirror.png
  22. 二进制
      dev-front/public/img/Mech_nano.png
  23. 二进制
      dev-front/public/img/Mech_pulse.png
  24. 二进制
      dev-front/public/img/Mech_punch.png
  25. 二进制
      dev-front/public/img/Mech_rockart.png
  26. 二进制
      dev-front/public/img/Mech_rocket.png
  27. 二进制
      dev-front/public/img/Mech_science.png
  28. 二进制
      dev-front/public/img/Mech_tank.png
  29. 二进制
      dev-front/public/img/Mech_tele.png
  30. 二进制
      dev-front/public/img/Mech_unstable.png
  31. 二进制
      dev-front/public/img/Mech_wall.png
  32. 二进制
      dev-front/public/img/Napalm_Mech.png
  33. 二进制
      dev-front/public/img/Pierce_Mech.png
  34. 二进制
      dev-front/public/img/Pitcher_Mech.png
  35. 二进制
      dev-front/public/img/Quick-Fire_Mech.png
  36. 二进制
      dev-front/public/img/Slide_Mech.png
  37. 二进制
      dev-front/public/img/Smog_Mech.png
  38. 二进制
      dev-front/public/img/Thruster_Mech.png
  39. 二进制
      dev-front/public/img/Triptych_Mech.png
  40. 二进制
      dev-front/public/img/Vek_beetle.png
  41. 二进制
      dev-front/public/img/Vek_hornet.png
  42. 二进制
      dev-front/public/img/Vek_scarab.png
  43. 13 0
      dev-front/src/App.css
  44. 3 0
      dev-front/src/Mech.tsx
  45. 0 0
      dev-front/src/img/empty.svg
  46. 1 248
      dev-front/src/mech/mech-data.json
  47. 3 2
      dev-front/src/mech/squad/Member.tsx
  48. 8 7
      dev-front/src/mech/squad/Squad.tsx
  49. 1 0
      sample-data/.gitignore
  50. 5 0
      sample-data/README.md
  51. 1 0
      sample-data/class.txt
  52. 1 0
      sample-data/header.txt
  53. 1 0
      sample-data/hp.txt
  54. 42 0
      sample-data/id.txt
  55. 42 0
      sample-data/img_local_url.txt
  56. 42 0
      sample-data/img_url.txt
  57. 1 0
      sample-data/mech.txt
  58. 42 0
      sample-data/move.txt
  59. 43 84
      sample-data/reduced-table.html
  60. 43 41
      sample-data/sample.csv
  61. 1 0
      sample-data/sample.json
  62. 380 0
      sample-data/sample_pretty.json
  63. 14 0
      sample-data/squad.txt
  64. 42 0
      sample-data/squad_full.txt
  65. 42 0
      sample-data/temp/download.sh

二进制
dev-front/public/img/Arachnoid_Mech.png


二进制
dev-front/public/img/Bombling_Mech.png


二进制
dev-front/public/img/Bulk_Mech.png


二进制
dev-front/public/img/Control_Mech.png


二进制
dev-front/public/img/Dispersal_Mech.png


二进制
dev-front/public/img/Drill_Mech.png


二进制
dev-front/public/img/Exchange_Mech.png


二进制
dev-front/public/img/Mech_artillery.png


二进制
dev-front/public/img/Mech_charge.png


二进制
dev-front/public/img/Mech_dstrike.png


二进制
dev-front/public/img/Mech_electric.png


二进制
dev-front/public/img/Mech_flame.png


二进制
dev-front/public/img/Mech_grav.png


二进制
dev-front/public/img/Mech_guard.png


二进制
dev-front/public/img/Mech_ice.png


二进制
dev-front/public/img/Mech_ignite.png


二进制
dev-front/public/img/Mech_jet.png


二进制
dev-front/public/img/Mech_judo.png


二进制
dev-front/public/img/Mech_laser.png


二进制
dev-front/public/img/Mech_leap.png


二进制
dev-front/public/img/Mech_mirror.png


二进制
dev-front/public/img/Mech_nano.png


二进制
dev-front/public/img/Mech_pulse.png


二进制
dev-front/public/img/Mech_punch.png


二进制
dev-front/public/img/Mech_rockart.png


二进制
dev-front/public/img/Mech_rocket.png


二进制
dev-front/public/img/Mech_science.png


二进制
dev-front/public/img/Mech_tank.png


二进制
dev-front/public/img/Mech_tele.png


二进制
dev-front/public/img/Mech_unstable.png


二进制
dev-front/public/img/Mech_wall.png


二进制
dev-front/public/img/Napalm_Mech.png


二进制
dev-front/public/img/Pierce_Mech.png


二进制
dev-front/public/img/Pitcher_Mech.png


二进制
dev-front/public/img/Quick-Fire_Mech.png


二进制
dev-front/public/img/Slide_Mech.png


二进制
dev-front/public/img/Smog_Mech.png


二进制
dev-front/public/img/Thruster_Mech.png


二进制
dev-front/public/img/Triptych_Mech.png


二进制
dev-front/public/img/Vek_beetle.png


二进制
dev-front/public/img/Vek_hornet.png


二进制
dev-front/public/img/Vek_scarab.png


+ 13 - 0
dev-front/src/App.css

@@ -6,6 +6,19 @@ header {
   font-size: calc(10px + 2vmin);
 }
 
+label {
+    margin: 1rem 0 0 0;
+}
+
+img {
+    width: 80%;
+
+    /* For pixel art */
+    image-rendering: pixelated;
+    image-rendering: -moz-crisp-edges;
+    image-rendering: crisp-edges;
+}
+
 .app {
     display: flex;
     flex-direction: column;

+ 3 - 0
dev-front/src/Mech.tsx

@@ -3,6 +3,9 @@ type Mech = {
     name: string;
     kind: string;
     health: number;
+    move: number;
+    squad: string;
+    img: string;
 }
 
 export default Mech;

dev-front/src/logo.svg → dev-front/src/img/empty.svg


文件差异内容过多而无法显示
+ 1 - 248
dev-front/src/mech/mech-data.json


+ 3 - 2
dev-front/src/mech/squad/Member.tsx

@@ -1,5 +1,4 @@
 import React from 'react';
-import logo from '../../logo.svg';
 import Mech from '../../Mech';
 import { isEmptySlot } from '../../MechUtils'
 
@@ -13,10 +12,12 @@ function Member({mech, remover} : MemberProps) {
         <div className='mech-member'>
             <h3>{mech.name}</h3>
             <div className='mech-description'>
-                <img src={logo} alt='Mech picture' />
+                <img src={mech.img} alt='Mech picture' />
                 <ul className='mech-stats'>
                     <li>Class : {mech.kind}</li>
                     <li>Health : {mech.health}</li>
+                    <li>Move range : {mech.move}</li>
+                    <li>From : {mech.squad}</li>
                 </ul>
             </div>
             <button onClick={event => remover()} disabled={isEmptySlot(mech)}>Remove</button>

+ 8 - 7
dev-front/src/mech/squad/Squad.tsx

@@ -1,6 +1,6 @@
 import React, { useState } from 'react';
 import Member from './Member';
-import logo from '../../logo.svg';
+import empty from '../../img/empty.svg';
 import Mech from '../../Mech';
 import MechObserver from '../../MechObserver';
 import { isEmptySlot } from '../../MechUtils';
@@ -26,8 +26,9 @@ function isSquadFull(squad: Mech[]) {
 
 function Squad({pickObservers} : {pickObservers: {[key: string] : MechObserver}}) {
 
-    const placeHolder: Mech = {id: -1, name: 'Empty slot', kind: '_', health: 0};
+    const placeHolder: Mech = {id: -1, name: 'Empty slot', kind: '_', health: 0, move: 0, squad: '_', img: empty};
     const [squadMechs, setSquadMechs] = useState([placeHolder, placeHolder, placeHolder]);
+    const [squadName, setSquadName] = useState('Custom squad');
 
     function putInFreeSlot(mech: Mech, squad: Mech[]): Mech[] {
         const freeSlotIndex = squad.findIndex(isEmptySlot);
@@ -54,17 +55,17 @@ function Squad({pickObservers} : {pickObservers: {[key: string] : MechObserver}}
 
     return (
         <article className='custom-squad'>
-            <h2>Custom squad</h2>
+            <h2>{squadName}</h2>
             <div className='mech-members'>
                 {squadMechs.map((m, index) => (
-                    <Member mech={m} remover={() => removeFromSquad(index)}/>
+                    <Member key={index} mech={m} remover={() => removeFromSquad(index)}/>
                 ))}
             </div>
             <div className='squad-description'>
+                <label htmlFor='squad-name-field-id'>Squad name</label>
+                <input id='squad-name-field-id' defaultValue='Custom squad' value={squadName} onChange={change => setSquadName(change.target.value)}/>
                 <label htmlFor='squad-description-field-id'>Squad description</label>
-                <textarea id='squad-description-field-id'>
-                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-                </textarea>
+                <textarea id='squad-description-field-id' defaultValue='A powerful squad.'/>
             </div>
         </article>
     )

+ 1 - 0
sample-data/.gitignore

@@ -0,0 +1 @@
+temp/

+ 5 - 0
sample-data/README.md

@@ -0,0 +1,5 @@
+# Mech data
+
+Mech are bundled with the app to make it load faster and be server independant.
+
+This way, we can still make squads, but we just can't push them in the server.

+ 1 - 0
sample-data/class.txt

@@ -36,6 +36,7 @@ Ranged
 Science
 Prime
 Brute
+Brute
 Prime
 Ranged
 Science

+ 1 - 0
sample-data/header.txt

@@ -0,0 +1 @@
+id,name,kind,health,move,squad,img

+ 1 - 0
sample-data/hp.txt

@@ -36,6 +36,7 @@
 2
 3
 2
+2
 4
 2
 3

+ 42 - 0
sample-data/id.txt

@@ -0,0 +1,42 @@
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42

+ 42 - 0
sample-data/img_local_url.txt

@@ -0,0 +1,42 @@
+/img/Mech_punch.png
+/img/Mech_tank.png
+/img/Mech_artillery.png
+/img/Mech_judo.png
+/img/Mech_dstrike.png
+/img/Mech_grav.png
+/img/Mech_jet.png
+/img/Mech_rocket.png
+/img/Mech_pulse.png
+/img/Mech_flame.png
+/img/Mech_ignite.png
+/img/Mech_tele.png
+/img/Mech_laser.png
+/img/Mech_charge.png
+/img/Mech_science.png
+/img/Mech_guard.png
+/img/Mech_mirror.png
+/img/Mech_ice.png
+/img/Mech_electric.png
+/img/Mech_wall.png
+/img/Mech_rockart.png
+/img/Mech_leap.png
+/img/Mech_unstable.png
+/img/Mech_nano.png
+/img/Vek_beetle.png
+/img/Vek_hornet.png
+/img/Vek_scarab.png
+/img/Pierce_Mech.png
+/img/Bombling_Mech.png
+/img/Exchange_Mech.png
+/img/Bulk_Mech.png
+/img/Arachnoid_Mech.png
+/img/Slide_Mech.png
+/img/Thruster_Mech.png
+/img/Smog_Mech.png
+/img/Control_Mech.png
+/img/Dispersal_Mech.png
+/img/Quick-Fire_Mech.png
+/img/Napalm_Mech.png
+/img/Pitcher_Mech.png
+/img/Triptych_Mech.png
+/img/Drill_Mech.png

+ 42 - 0
sample-data/img_url.txt

@@ -0,0 +1,42 @@
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/c/cc/Mech_punch.png/revision/latest?cb=20180301131447
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/4/4a/Mech_tank.png/revision/latest?cb=20180301131454
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/9/94/Mech_artillery.png/revision/latest?cb=20180301131424
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/d/de/Mech_judo.png/revision/latest?cb=20180301131437
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/1/10/Mech_dstrike.png/revision/latest?cb=20180301131425
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/9/92/Mech_grav.png/revision/latest?cb=20180301131428
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/1/17/Mech_jet.png/revision/latest?cb=20180301131435
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/2/21/Mech_rocket.png/revision/latest?cb=20180301131451
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/a/a0/Mech_pulse.png/revision/latest?cb=20180301131445
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/0/06/Mech_flame.png/revision/latest?cb=20180301131427
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/c/c5/Mech_ignite.png/revision/latest?cb=20180301131433
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/9/92/Mech_tele.png/revision/latest?cb=20180301131456
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/e/e3/Mech_laser.png/revision/latest?cb=20180301131438
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/f/f6/Mech_charge.png/revision/latest?cb=20180301131424
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/2/27/Mech_science.png/revision/latest?cb=20180301131452
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/6/6d/Mech_guard.png/revision/latest?cb=20180301131429
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/5/53/Mech_mirror.png/revision/latest?cb=20180301131442
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/c/ce/Mech_ice.png/revision/latest?cb=20180301131431
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/c/ca/Mech_electric.png/revision/latest?cb=20180301131426
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/7/79/Mech_wall.png/revision/latest?cb=20180301131459
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/9/9e/Mech_rockart.png/revision/latest?cb=20180301131449
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/b/b4/Mech_leap.png/revision/latest?cb=20180301131440
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/7/78/Mech_unstable.png/revision/latest?cb=20180301131458
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/4/4e/Mech_nano.png/revision/latest?cb=20180301131443
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/3/3b/Vek_beetle.png/revision/latest?cb=20180301131500
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/d/d9/Vek_hornet.png/revision/latest?cb=20180301131501
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/4/44/Vek_scarab.png/revision/latest?cb=20180301131502
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/8/80/Pierce_Mech.png/revision/latest?cb=20220720143039
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/d/d6/Bombling_Mech.png/revision/latest?cb=20220720143147
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/9/91/Exchange_Mech.png/revision/latest?cb=20220720143245
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/6/61/Bulk_Mech.png/revision/latest?cb=20220724172704
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/7/7d/Arachnoid_Mech.png/revision/latest?cb=20220724173042
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/d/da/Slide_Mech.png/revision/latest?cb=20220724173156
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/1/11/Thruster_Mech.png/revision/latest?cb=20220724172719
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/0/0f/Smog_Mech.png/revision/latest?cb=20220724172937
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/b/b2/Control_Mech.png/revision/latest?cb=20220724173239
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/0/0e/Dispersal_Mech.png/revision/latest?cb=20220724172832
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/f/fd/Quick-Fire_Mech.png/revision/latest?cb=20220724172749
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/d/d9/Napalm_Mech.png/revision/latest?cb=20220724173521
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/6/64/Pitcher_Mech.png/revision/latest?cb=20220724172805
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/0/0e/Triptych_Mech.png/revision/latest?cb=20220724173118
+https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/3/39/Drill_Mech.png/revision/latest?cb=20220724173216

+ 1 - 0
sample-data/mech.txt

@@ -35,6 +35,7 @@ Thruster
 Smog
 Control
 Dispersal
+Quick-Fire
 Napalm
 Pitcher
 Triptych

+ 42 - 0
sample-data/move.txt

@@ -0,0 +1,42 @@
+3
+3
+3
+4
+3
+4
+4
+3
+4
+3
+3
+4
+3
+3
+4
+4
+3
+3
+3
+3
+3
+4
+3
+4
+3
+4
+3
+4
+3
+3
+3
+3
+4
+4
+3
+4
+3
+4
+4
+4
+3
+4

文件差异内容过多而无法显示
+ 43 - 84
sample-data/reduced-table.html


+ 43 - 41
sample-data/sample.csv

@@ -1,41 +1,43 @@
-Combat,Prime,3
-Cannon,Brute,3
-Artillery,Ranged,2
-Judo,Prime,3
-Siege,Ranged,2
-Gravity,Science,3
-Jet,Brute,2
-Rocket,Ranged,3
-Pulse,Science,3
-Flame,Prime,3
-Meteor,Ranged,3
-Swap,Science,2
-Laser,Prime,3
-Charge,Brute,3
-Defense,Science,2
-Aegis,Prime,3
-Mirror,Brute,3
-Ice,Ranged,2
-Lightning,Prime,3
-Hook,Brute,3
-Boulder,Ranged,2
-Leap,Prime,3
-Unstable,Brute,3
-Nano,Science,2
-Beetle,Cyborg,3
-Hornet,Cyborg,2
-Scarab,Cyborg,2
-Pierce,Brute,3
-Bombling,Ranged,3
-Exchange,Science,2
-Bulk,Brute,3
-Arachnoid,Ranged,3
-Slide,Science,2
-Thruster,Brute,3
-Smog,Ranged,3
-Control,Science,2
-Dispersal,Prime,3
-Napalm,Brute,2
-Pitcher,Prime,4
-Triptych,Ranged,2
-Drill,Science,3
+id,name,kind,health,move,squad,img
+1,Combat,Prime,3,3,Rift Walkers,/img/Mech_punch.png
+2,Cannon,Brute,3,3,Rift Walkers,/img/Mech_tank.png
+3,Artillery,Ranged,2,3,Rift Walkers,/img/Mech_artillery.png
+4,Judo,Prime,3,4,Steel Judoka,/img/Mech_judo.png
+5,Siege,Ranged,2,3,Steel Judoka,/img/Mech_dstrike.png
+6,Gravity,Science,3,4,Steel Judoka,/img/Mech_grav.png
+7,Jet,Brute,2,4,Rusting Hulks,/img/Mech_jet.png
+8,Rocket,Ranged,3,3,Rusting Hulks,/img/Mech_rocket.png
+9,Pulse,Science,3,4,Rusting Hulks,/img/Mech_pulse.png
+10,Flame,Prime,3,3,Flame Behemoths,/img/Mech_flame.png
+11,Meteor,Ranged,3,3,Flame Behemoths,/img/Mech_ignite.png
+12,Swap,Science,2,4,Flame Behemoths,/img/Mech_tele.png
+13,Laser,Prime,3,3,Zenith Guard,/img/Mech_laser.png
+14,Charge,Brute,3,3,Zenith Guard,/img/Mech_charge.png
+15,Defense,Science,2,4,Zenith Guard,/img/Mech_science.png
+16,Aegis,Prime,3,4,Frozen Titans,/img/Mech_guard.png
+17,Mirror,Brute,3,3,Frozen Titans,/img/Mech_mirror.png
+18,Ice,Ranged,2,3,Frozen Titans,/img/Mech_ice.png
+19,Lightning,Prime,3,3,Blitzkrieg,/img/Mech_electric.png
+20,Hook,Brute,3,3,Blitzkrieg,/img/Mech_wall.png
+21,Boulder,Ranged,2,3,Blitzkrieg,/img/Mech_rockart.png
+22,Leap,Prime,3,4,Hazardous  Mechs,/img/Mech_leap.png
+23,Unstable,Brute,3,3,Hazardous  Mechs,/img/Mech_unstable.png
+24,Nano,Science,2,4,Hazardous  Mechs,/img/Mech_nano.png
+25,Beetle,Cyborg,3,3,Secret Squad,/img/Vek_beetle.png
+26,Hornet,Cyborg,2,4,Secret Squad,/img/Vek_hornet.png
+27,Scarab,Cyborg,2,3,Secret Squad,/img/Vek_scarab.png
+28,Pierce,Brute,3,4,Bombermechs,/img/Pierce_Mech.png
+29,Bombling,Ranged,3,3,Bombermechs,/img/Bombling_Mech.png
+30,Exchange,Science,2,3,Bombermechs,/img/Exchange_Mech.png
+31,Bulk,Brute,3,3,Arachnophiles,/img/Bulk_Mech.png
+32,Arachnoid,Ranged,3,3,Arachnophiles,/img/Arachnoid_Mech.png
+33,Slide,Science,2,4,Arachnophiles,/img/Slide_Mech.png
+34,Thruster,Brute,3,4,Mist Eaters,/img/Thruster_Mech.png
+35,Smog,Ranged,3,3,Mist Eaters,/img/Smog_Mech.png
+36,Control,Science,2,4,Mist Eaters,/img/Control_Mech.png
+37,Dispersal,Prime,3,3,Heat Sinkers,/img/Dispersal_Mech.png
+38,Quick-Fire,Brute,2,4,Heat Sinkers,/img/Quick-Fire_Mech.png
+39,Napalm,Brute,2,4,Heat Sinkers,/img/Napalm_Mech.png
+40,Pitcher,Prime,4,4,Cataclysm,/img/Pitcher_Mech.png
+41,Triptych,Ranged,2,3,Cataclysm,/img/Triptych_Mech.png
+42,Drill,Science,3,4,Cataclysm,/img/Drill_Mech.png

文件差异内容过多而无法显示
+ 1 - 0
sample-data/sample.json


+ 380 - 0
sample-data/sample_pretty.json

@@ -0,0 +1,380 @@
+[
+  {
+    "id": 1,
+    "name": "Combat",
+    "kind": "Prime",
+    "health": 3,
+    "move": 3,
+    "squad": "Rift Walkers",
+    "img": "/img/Mech_punch.png"
+  },
+  {
+    "id": 2,
+    "name": "Cannon",
+    "kind": "Brute",
+    "health": 3,
+    "move": 3,
+    "squad": "Rift Walkers",
+    "img": "/img/Mech_tank.png"
+  },
+  {
+    "id": 3,
+    "name": "Artillery",
+    "kind": "Ranged",
+    "health": 2,
+    "move": 3,
+    "squad": "Rift Walkers",
+    "img": "/img/Mech_artillery.png"
+  },
+  {
+    "id": 4,
+    "name": "Judo",
+    "kind": "Prime",
+    "health": 3,
+    "move": 4,
+    "squad": "Steel Judoka",
+    "img": "/img/Mech_judo.png"
+  },
+  {
+    "id": 5,
+    "name": "Siege",
+    "kind": "Ranged",
+    "health": 2,
+    "move": 3,
+    "squad": "Steel Judoka",
+    "img": "/img/Mech_dstrike.png"
+  },
+  {
+    "id": 6,
+    "name": "Gravity",
+    "kind": "Science",
+    "health": 3,
+    "move": 4,
+    "squad": "Steel Judoka",
+    "img": "/img/Mech_grav.png"
+  },
+  {
+    "id": 7,
+    "name": "Jet",
+    "kind": "Brute",
+    "health": 2,
+    "move": 4,
+    "squad": "Rusting Hulks",
+    "img": "/img/Mech_jet.png"
+  },
+  {
+    "id": 8,
+    "name": "Rocket",
+    "kind": "Ranged",
+    "health": 3,
+    "move": 3,
+    "squad": "Rusting Hulks",
+    "img": "/img/Mech_rocket.png"
+  },
+  {
+    "id": 9,
+    "name": "Pulse",
+    "kind": "Science",
+    "health": 3,
+    "move": 4,
+    "squad": "Rusting Hulks",
+    "img": "/img/Mech_pulse.png"
+  },
+  {
+    "id": 10,
+    "name": "Flame",
+    "kind": "Prime",
+    "health": 3,
+    "move": 3,
+    "squad": "Flame Behemoths",
+    "img": "/img/Mech_flame.png"
+  },
+  {
+    "id": 11,
+    "name": "Meteor",
+    "kind": "Ranged",
+    "health": 3,
+    "move": 3,
+    "squad": "Flame Behemoths",
+    "img": "/img/Mech_ignite.png"
+  },
+  {
+    "id": 12,
+    "name": "Swap",
+    "kind": "Science",
+    "health": 2,
+    "move": 4,
+    "squad": "Flame Behemoths",
+    "img": "/img/Mech_tele.png"
+  },
+  {
+    "id": 13,
+    "name": "Laser",
+    "kind": "Prime",
+    "health": 3,
+    "move": 3,
+    "squad": "Zenith Guard",
+    "img": "/img/Mech_laser.png"
+  },
+  {
+    "id": 14,
+    "name": "Charge",
+    "kind": "Brute",
+    "health": 3,
+    "move": 3,
+    "squad": "Zenith Guard",
+    "img": "/img/Mech_charge.png"
+  },
+  {
+    "id": 15,
+    "name": "Defense",
+    "kind": "Science",
+    "health": 2,
+    "move": 4,
+    "squad": "Zenith Guard",
+    "img": "/img/Mech_science.png"
+  },
+  {
+    "id": 16,
+    "name": "Aegis",
+    "kind": "Prime",
+    "health": 3,
+    "move": 4,
+    "squad": "Frozen Titans",
+    "img": "/img/Mech_guard.png"
+  },
+  {
+    "id": 17,
+    "name": "Mirror",
+    "kind": "Brute",
+    "health": 3,
+    "move": 3,
+    "squad": "Frozen Titans",
+    "img": "/img/Mech_mirror.png"
+  },
+  {
+    "id": 18,
+    "name": "Ice",
+    "kind": "Ranged",
+    "health": 2,
+    "move": 3,
+    "squad": "Frozen Titans",
+    "img": "/img/Mech_ice.png"
+  },
+  {
+    "id": 19,
+    "name": "Lightning",
+    "kind": "Prime",
+    "health": 3,
+    "move": 3,
+    "squad": "Blitzkrieg",
+    "img": "/img/Mech_electric.png"
+  },
+  {
+    "id": 20,
+    "name": "Hook",
+    "kind": "Brute",
+    "health": 3,
+    "move": 3,
+    "squad": "Blitzkrieg",
+    "img": "/img/Mech_wall.png"
+  },
+  {
+    "id": 21,
+    "name": "Boulder",
+    "kind": "Ranged",
+    "health": 2,
+    "move": 3,
+    "squad": "Blitzkrieg",
+    "img": "/img/Mech_rockart.png"
+  },
+  {
+    "id": 22,
+    "name": "Leap",
+    "kind": "Prime",
+    "health": 3,
+    "move": 4,
+    "squad": "Hazardous  Mechs",
+    "img": "/img/Mech_leap.png"
+  },
+  {
+    "id": 23,
+    "name": "Unstable",
+    "kind": "Brute",
+    "health": 3,
+    "move": 3,
+    "squad": "Hazardous  Mechs",
+    "img": "/img/Mech_unstable.png"
+  },
+  {
+    "id": 24,
+    "name": "Nano",
+    "kind": "Science",
+    "health": 2,
+    "move": 4,
+    "squad": "Hazardous  Mechs",
+    "img": "/img/Mech_nano.png"
+  },
+  {
+    "id": 25,
+    "name": "Beetle",
+    "kind": "Cyborg",
+    "health": 3,
+    "move": 3,
+    "squad": "Secret Squad",
+    "img": "/img/Vek_beetle.png"
+  },
+  {
+    "id": 26,
+    "name": "Hornet",
+    "kind": "Cyborg",
+    "health": 2,
+    "move": 4,
+    "squad": "Secret Squad",
+    "img": "/img/Vek_hornet.png"
+  },
+  {
+    "id": 27,
+    "name": "Scarab",
+    "kind": "Cyborg",
+    "health": 2,
+    "move": 3,
+    "squad": "Secret Squad",
+    "img": "/img/Vek_scarab.png"
+  },
+  {
+    "id": 28,
+    "name": "Pierce",
+    "kind": "Brute",
+    "health": 3,
+    "move": 4,
+    "squad": "Bombermechs",
+    "img": "/img/Pierce_Mech.png"
+  },
+  {
+    "id": 29,
+    "name": "Bombling",
+    "kind": "Ranged",
+    "health": 3,
+    "move": 3,
+    "squad": "Bombermechs",
+    "img": "/img/Bombling_Mech.png"
+  },
+  {
+    "id": 30,
+    "name": "Exchange",
+    "kind": "Science",
+    "health": 2,
+    "move": 3,
+    "squad": "Bombermechs",
+    "img": "/img/Exchange_Mech.png"
+  },
+  {
+    "id": 31,
+    "name": "Bulk",
+    "kind": "Brute",
+    "health": 3,
+    "move": 3,
+    "squad": "Arachnophiles",
+    "img": "/img/Bulk_Mech.png"
+  },
+  {
+    "id": 32,
+    "name": "Arachnoid",
+    "kind": "Ranged",
+    "health": 3,
+    "move": 3,
+    "squad": "Arachnophiles",
+    "img": "/img/Arachnoid_Mech.png"
+  },
+  {
+    "id": 33,
+    "name": "Slide",
+    "kind": "Science",
+    "health": 2,
+    "move": 4,
+    "squad": "Arachnophiles",
+    "img": "/img/Slide_Mech.png"
+  },
+  {
+    "id": 34,
+    "name": "Thruster",
+    "kind": "Brute",
+    "health": 3,
+    "move": 4,
+    "squad": "Mist Eaters",
+    "img": "/img/Thruster_Mech.png"
+  },
+  {
+    "id": 35,
+    "name": "Smog",
+    "kind": "Ranged",
+    "health": 3,
+    "move": 3,
+    "squad": "Mist Eaters",
+    "img": "/img/Smog_Mech.png"
+  },
+  {
+    "id": 36,
+    "name": "Control",
+    "kind": "Science",
+    "health": 2,
+    "move": 4,
+    "squad": "Mist Eaters",
+    "img": "/img/Control_Mech.png"
+  },
+  {
+    "id": 37,
+    "name": "Dispersal",
+    "kind": "Prime",
+    "health": 3,
+    "move": 3,
+    "squad": "Heat Sinkers",
+    "img": "/img/Dispersal_Mech.png"
+  },
+  {
+    "id": 38,
+    "name": "Quick-Fire",
+    "kind": "Brute",
+    "health": 2,
+    "move": 4,
+    "squad": "Heat Sinkers",
+    "img": "/img/Quick-Fire_Mech.png"
+  },
+  {
+    "id": 39,
+    "name": "Napalm",
+    "kind": "Brute",
+    "health": 2,
+    "move": 4,
+    "squad": "Heat Sinkers",
+    "img": "/img/Napalm_Mech.png"
+  },
+  {
+    "id": 40,
+    "name": "Pitcher",
+    "kind": "Prime",
+    "health": 4,
+    "move": 4,
+    "squad": "Cataclysm",
+    "img": "/img/Pitcher_Mech.png"
+  },
+  {
+    "id": 41,
+    "name": "Triptych",
+    "kind": "Ranged",
+    "health": 2,
+    "move": 3,
+    "squad": "Cataclysm",
+    "img": "/img/Triptych_Mech.png"
+  },
+  {
+    "id": 42,
+    "name": "Drill",
+    "kind": "Science",
+    "health": 3,
+    "move": 4,
+    "squad": "Cataclysm",
+    "img": "/img/Drill_Mech.png"
+  }
+]

+ 14 - 0
sample-data/squad.txt

@@ -0,0 +1,14 @@
+Rift Walkers
+Steel Judoka
+Rusting Hulks
+Flame Behemoths
+Zenith Guard
+Frozen Titans
+Blitzkrieg
+Hazardous  Mechs
+Secret Squad
+Bombermechs
+Arachnophiles
+Mist Eaters
+Heat Sinkers
+Cataclysm

+ 42 - 0
sample-data/squad_full.txt

@@ -0,0 +1,42 @@
+Rift Walkers
+Rift Walkers
+Rift Walkers
+Steel Judoka
+Steel Judoka
+Steel Judoka
+Rusting Hulks
+Rusting Hulks
+Rusting Hulks
+Flame Behemoths
+Flame Behemoths
+Flame Behemoths
+Zenith Guard
+Zenith Guard
+Zenith Guard
+Frozen Titans
+Frozen Titans
+Frozen Titans
+Blitzkrieg
+Blitzkrieg
+Blitzkrieg
+Hazardous  Mechs
+Hazardous  Mechs
+Hazardous  Mechs
+Secret Squad
+Secret Squad
+Secret Squad
+Bombermechs
+Bombermechs
+Bombermechs
+Arachnophiles
+Arachnophiles
+Arachnophiles
+Mist Eaters
+Mist Eaters
+Mist Eaters
+Heat Sinkers
+Heat Sinkers
+Heat Sinkers
+Cataclysm
+Cataclysm
+Cataclysm

+ 42 - 0
sample-data/temp/download.sh

@@ -0,0 +1,42 @@
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/c/cc/Mech_punch.png/revision/latest?cb=20180301131447' > Mech_punch.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/4/4a/Mech_tank.png/revision/latest?cb=20180301131454' > Mech_tank.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/9/94/Mech_artillery.png/revision/latest?cb=20180301131424' > Mech_artillery.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/d/de/Mech_judo.png/revision/latest?cb=20180301131437' > Mech_judo.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/1/10/Mech_dstrike.png/revision/latest?cb=20180301131425' > Mech_dstrike.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/9/92/Mech_grav.png/revision/latest?cb=20180301131428' > Mech_grav.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/1/17/Mech_jet.png/revision/latest?cb=20180301131435' > Mech_jet.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/2/21/Mech_rocket.png/revision/latest?cb=20180301131451' > Mech_rocket.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/a/a0/Mech_pulse.png/revision/latest?cb=20180301131445' > Mech_pulse.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/0/06/Mech_flame.png/revision/latest?cb=20180301131427' > Mech_flame.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/c/c5/Mech_ignite.png/revision/latest?cb=20180301131433' > Mech_ignite.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/9/92/Mech_tele.png/revision/latest?cb=20180301131456' > Mech_tele.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/e/e3/Mech_laser.png/revision/latest?cb=20180301131438' > Mech_laser.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/f/f6/Mech_charge.png/revision/latest?cb=20180301131424' > Mech_charge.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/2/27/Mech_science.png/revision/latest?cb=20180301131452' > Mech_science.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/6/6d/Mech_guard.png/revision/latest?cb=20180301131429' > Mech_guard.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/5/53/Mech_mirror.png/revision/latest?cb=20180301131442' > Mech_mirror.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/c/ce/Mech_ice.png/revision/latest?cb=20180301131431' > Mech_ice.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/c/ca/Mech_electric.png/revision/latest?cb=20180301131426' > Mech_electric.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/7/79/Mech_wall.png/revision/latest?cb=20180301131459' > Mech_wall.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/9/9e/Mech_rockart.png/revision/latest?cb=20180301131449' > Mech_rockart.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/b/b4/Mech_leap.png/revision/latest?cb=20180301131440' > Mech_leap.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/7/78/Mech_unstable.png/revision/latest?cb=20180301131458' > Mech_unstable.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/4/4e/Mech_nano.png/revision/latest?cb=20180301131443' > Mech_nano.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/8/80/Pierce_Mech.png/revision/latest?cb=20220720143039' > Pierce_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/3/3b/Vek_beetle.png/revision/latest?cb=20180301131500' > Vek_beetle.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/d/d9/Vek_hornet.png/revision/latest?cb=20180301131501' > Vek_hornet.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/4/44/Vek_scarab.png/revision/latest?cb=20180301131502' > Vek_scarab.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/d/d6/Bombling_Mech.png/revision/latest?cb=20220720143147' > Bombling_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/9/91/Exchange_Mech.png/revision/latest?cb=20220720143245' > Exchange_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/6/61/Bulk_Mech.png/revision/latest?cb=20220724172704' > Bulk_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/7/7d/Arachnoid_Mech.png/revision/latest?cb=20220724173042' > Arachnoid_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/d/da/Slide_Mech.png/revision/latest?cb=20220724173156' > Slide_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/1/11/Thruster_Mech.png/revision/latest?cb=20220724172719' > Thruster_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/0/0f/Smog_Mech.png/revision/latest?cb=20220724172937' > Smog_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/b/b2/Control_Mech.png/revision/latest?cb=20220724173239' > Control_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/0/0e/Dispersal_Mech.png/revision/latest?cb=20220724172832' > Dispersal_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/f/fd/Quick-Fire_Mech.png/revision/latest?cb=20220724172749' > Quick-Fire_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/d/d9/Napalm_Mech.png/revision/latest?cb=20220724173521' > Napalm_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/6/64/Pitcher_Mech.png/revision/latest?cb=20220724172805' > Pitcher_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/0/0e/Triptych_Mech.png/revision/latest?cb=20220724173118' > Triptych_Mech.png
+curl 'https://static.wikia.nocookie.net/intothebreach_gamepedia_en/images/3/39/Drill_Mech.png/revision/latest?cb=20220724173216' > Drill_Mech.png