diff --git a/index.html b/index.html new file mode 100644 index 0000000..22c55c8 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +game
\ No newline at end of file diff --git a/output/index.html b/output/index.html new file mode 100644 index 0000000..df4ac84 Binary files /dev/null and b/output/index.html differ diff --git a/sires.json b/sires.json new file mode 100644 index 0000000..4ac00e1 --- /dev/null +++ b/sires.json @@ -0,0 +1,11 @@ +{ + "kty": "RSA", + "n": "wtpgu9VWUFAoFaPA45SXYeqKbzsNUGh6dMIxicWnXVBpH1urI9YpJRlIBIRjy3cNrBavDbFcuoyL00i-3qhHtMW2I4VcY4ja2JkMy0fAe4OfkSp3yHcNnw-vPmc5Z9yrSRWWecdssquX3_-z31Z0wyp1sOYku4E4zeJB2mH5njgaaqQBqKe6aGMN8aQyuPEWUdVlim5wamtp_tK9GcSev0HhEj5MXSNgL7rTHj0I0_i0jX5lt4GkRwq4gry8veM--cqCYlbEsZPsa-MpxSSQo2-r5YI1hHCZpGO0Hs65F0Q0NXhsTCSwBsdFthYq8nMF2s4AiYVZhpJIWkKuOUPDbDxCIzyMoSE7Esja4rd-88lFxedeBbX_fH550xgaaIwvWuuRr1Ofp9E637Aij2h_IVU2ij9ZUQRjn6lW0bwUdHFsaTziKrNXeHTJlArlc7tXnHQTBj45Zu0DdesWtrVGnGtRqdDaPDhcbcel_E7vOakWENCnjI1UUxLqLEztuwOtx-yXIyOrQC9wtOI7QUBDx_hEIhc3ul3b_74wJfhlCOanU5q8Sl5S9RvkaN0sHMXc5SYgLqgso61BJ-eY2CvQiYEzy2gHtqzFzyy-RA1Lx65k6tHMkXiikLdmNB7Xpn9m8nk5s2Ecl7L0zhNm4e9orUGU1vLPixyDiypDq3qwGOU", + "e": "AQAB", + "d": "HabHs626Tcx03R4nOzqgcskTOev9ka_keqIWkcWfO2cCKEB14aU0a63WNMHEwfCjBv4Is4e6-bRrjsJyMUXga5Tuq6cesRLhYrafqMuJcgJMpPWWds4PJ5Zmb5Obu79r3VpIpM2BMAtGuFKcF697Yzux3zKWgmYes83rgYUJTFdzRakhi33CsyHnvE7lXRlq8RcNNayqtLcV0S5WknZGRgqLapBKZJ3-hCTk_aQCFOey6hlC91LmId1yyIpaGndbXP3BK5_SnMdK4fwWniZ7UDOtL-bJqBbOeqKlhU6mAfFiFIT3zfqDQvTOGfBzpqN0T6CrmkHNptnZ4spk4tf6A9l2-6yDGQInj2H_8XLzu9KNsz_nYmvADlYRaN37LA6Jm9ZeKVw0ioSpb4_S7DLGqTNEtuwe4jsIEjC9TOD8IL7uKsXJ3oasqMctH48ThZLs7tgJU6KKBpzUVnwQp5sIgWC4fKyAY3Y6quB8kLFdVfhd-OtPTshZ-6UpShvgAg3fcFiNDnDeD_lDP-XBtmgpCX_aT5LJkiXVnSepYQOEaiRfOfU6_B4DCA-a09DyJu7IjwN5imvxqzhfCF_vz47GvXlImTn5Qmh7gWryot_jBpPYrwIwxqdO6jPLSXan5A0WN6i_eqFddoOhacK-XdGe_WEl3ystT50veJTkzK1Z7sE", + "p": "6go4KVblA09Y0YFnPU-XAoEceFCmxa4BWH7Jim7MScYsF2wWpoW85wXjuwhZgPnq_QqwDOM7r8_Gbje-vWTjWrwUp2owY1upg7W7VNC3m0u0TfcqnE93xtXiFYyAvt2W2PIaBhfoxQrSZCm52OpnAM4MLHzWx75r-suoRqrWd-Z_8AVvXg7hAQPfbHLzJkobIKFJNxt-Lazh9O60N5nhq9QYgEFySJzmBjyCqBFjreIZ27vspTe6MjgT9W96HsvIXMZkqJP-YEGhIK6CZvazkwFY5Kz4c0Ahd0aTOqhpDluKRgMLZ_BH7i3PkgGAEMRO5vSBavJ4Mlb9x2XcJaCrsQ", + "q": "1SLdqbcEjJeet3nW_bW4qkmbtfxlJbK9Zc0QtIHLSwTH2BMEz8HhBugMLHv8AI0yMBP5mEvfvCvOHvmofE-sUoAhje5bRvF6Sd7E6kO-jWJ-zYUIlTdZUjPBdr1Tq4EdXIXF7cvMhEhqJqNFuQppApZhEbe1jK7Gv0eHQStbFwWTMqty4cHT0HhAp6r8jafMftM_oIykhgdAj51FlDHqjZLRb9TvNoNB603q4pQQoK6JKmS4-fHGsppfahwIRk4Irpp2rH7gUu-VM078CLMedHr78ZhtWvogh7p1iZASeMOd0vnI1YQajcUVp7ePnNtGc80rlfgpDfsEOckoOKDxdQ", + "dp": "MfeMlgbfTh2asOAX0pczfm1iTq2pbXsA_ovTK6MMKpQMxdNl4pebBRfUzxGxSkARU4T8oUPCcn7BtrZgGr93at_M6RFa01u2jVA3dpw5FwbKr_qdNlIhGGqBomgk9JsKobbOp45jO-5bjNb7vrwM0bcsEjN1B6A4HYttmejPcTndBrmiVUqH71eMU_MWxo37zLOilglgnw_SDiEIiPZpn-3gbUGLzMTyt1Ij8w4DYhRrwOYWWA_VyPMAD96FDB4l4OjahMNUA-j_JaMcZC83l6Mp_2iOgsymWHjQ5i0egNo6Y0gzHzXFpaxSLLH1TZ8b2WNKXjL2RokcFX5ByibLgQ", + "dq": "anWK4L3A8PS-24hpQbrmLXCs7T7Pyv-3qMTAJll6kNMnex8s1RVTcB6yDfo0CpZ8ThV8I30qmRQMVd6AMO-e9Gp52CoJv6rYWVODajxCTt621bMwcU__NpcReFzjERRh9RgAoGGemyiMlRYSunWftCInBDGN5mJadaqlvYCJdDtdpf6LWIZ3ZXbbXKSEl8EL3QFpk6kMeMHglpuI6JfyP5rpMAHdJo5ze7Qksd4hXBEyBFHhLz977zQ6moa7_1n07jnLMygApoxzKvi13SaS_L19YNSxMrMjUohpMzgaceXLzFjl3vioRs39nhOLEV9ZlngR4EvfPdN27eIzS-3gDQ", + "qi": "f0Ma7C56ZNagwbKh4PUAbJvoackWEgd6SGgPENFw_lvo41i6ApAkoj_-wGlG0rdOHmtM1FziSJb3LCv1jpJe_AZQtGW73tPo0ppZURMSsuqXnJjFnpbcITXqPUGDURwMDy_6Dj3bpzpwE1cO8A15S1Xpbd7HxmS-hCLADxPaRMmfkbs7saFOw5nz67V7c4z6I52Lb1361QR0BBO3gPBtUhimblNO-0QJf9Fn8gPMy9mxe8B8tGW35CVCnJdjTKknPp_S1z0Hr5sPd3Zb5V22u38UcpshPYOhgt6V2iUfRSq15xKEWeHy8w-KMtVSnJM-V8hBAYTVayBARQpT436ccA" +} \ No newline at end of file diff --git a/src/components/Game.vue b/src/components/Game.vue index 7c43c5d..b3bccbf 100644 --- a/src/components/Game.vue +++ b/src/components/Game.vue @@ -44,6 +44,7 @@ img(v-if='items&&items[4]' :src='"/weapeon_"+items[4][1]+".png"') .money Cash {{money}}$ .game(@click='shoot') + .playerFriend(v-for='p in players' :style='{ "left": p.left + "px", "top": p.top + "px", "transform": "rotate("+p.rotate+"deg)" }') .player#player(:style='{"left": left + "px", "top": top + "px", "transform": rotate}') .enemy(v-for='e in enemies' :style='{ "left": e.left + "px", "top": e.top + "px" }') .hp @@ -73,7 +74,8 @@ export default { bullets: [], level: 1, items: [], - orders: [] + orders: [], + players: [] } }, // >>>CREATE TABLE weapeons(id int, type int, level int, userId int) @@ -81,17 +83,73 @@ export default { // >>>CREATE TABLE orders(id int, price int, type int, userId int) // table created + +//CREATE TABLE enemies(id int, hp int, posX int, posY int) methods: { + getEnemies: function() { + window.session.request(`SELECT * FROM enemies`).result().then((r)=>{ + var val = r.asString().split("\n").map(i => i.split(", ")) + val.splice(0, 1) + console.log(r) + this.enemies = [] + if(val.length <= 1){ + let id = randomInteger(500, 2000000) + let x = Math.floor(randomInteger(50, window.innerWidth - 50)) + let y = Math.floor(randomInteger(50, window.innerHeight - 50)) + window.session.request(`INSERT INTO enemies VALUES(${id}, 100, ${x}, ${y})`).result().then((r) => { + this.enemies.push({ + left: x, + top: y, + hp: 100, + id + }) + }) + }else{ + val.forEach(v=>{ + if(v){ + this.enemies.push({ + left: v[2], + top: v[3], + hp: v[1], + id: v[0] + }) + } + }) + } + setTimeout(()=>this.getEnemies(), 1000) + }) + + }, + getPlayers: function() { + window.session.request(`SELECT * FROM players`).result().then((r)=>{ + console.log(r.asString()) + var val = r.asString().split("\n").map(i => i.split(", ")) + val.splice(0, 1) + this.players = [] + console.log(val) + val.forEach(v=>{ + console.log(v) + if(v&&v[0]!==window.localStorage.getItem("game")){ + this.players.push({ + left: v[1], + top: v[2], + angle: v[3] + }) + } + }) + setTimeout(()=>this.getPlayers(), 500) + }) + }, openMarket: function() { + this.marketModal = true window.session.request(`SELECT * FROM orders`).result().then((r) => { var val = r.asString().split("\n").map(i => i.split(", ")) val.splice(0, 1) this.orders = val - this.marketModal = true }) }, buyItem: function(o){ - window.session.request(`INSERT INTO weapeons VALUES(${randomInteger(500, 2000000)}, ${o[2]}, 0, ${window.localStorage.getItem("game")})`).result() + window.session.request(`INSERT INTO weapeons VALUES(${randomInteger(500, 2000000)}, ${o[2]}, 0, ${window.localStorage.getItem("game")})`) window.session.request(`SELECT * FROM users`).result().then((r) => { var val = r.asString().split("\n").map(i => i.split(", ")) @@ -108,19 +166,17 @@ export default { this.money = parseInt(r.asString().split("\n")[1] ) }) window.session.request(`SELECT * FROM weapeons WHERE userId = ${window.localStorage.getItem("game")}`).result().then((r) => { - console.log(r.asString().split("\n")) if(r.asString().split("\n")[1]){ var val = r.asString().split("\n").map(i => i.split(", ")) val.splice(0, 1) val.unshift([0,0,0,0]) - console.log(val) this.items = val } }) }, sellItem: function() { let iInd = this.marketSellSelected - window.session.request(`INSERT INTO orders VALUES(${randomInteger(500, 2000000)}, ${this.marketSellPrice}, ${this.items[iInd][1]}, ${window.localStorage.getItem("game")})`).result().then((r) => console.log(r.asString())) + window.session.request(`INSERT INTO orders VALUES(${randomInteger(500, 2000000)}, ${this.marketSellPrice}, ${this.items[iInd][1]}, ${window.localStorage.getItem("game")})`) window.session.request(`DELETE FROM weapeons WHERE id = ${this.items[iInd][0]}`) this.marketSellPrice = null this.marketSellSelected = null @@ -132,7 +188,7 @@ export default { let num = randomInteger(1,4) this.show_weapeon = num setTimeout(()=>this.show_weapeon = null, 3000) - window.session.request(`INSERT INTO weapeons VALUES(${randomInteger(500, 2000000)}, ${num}, 0, ${window.localStorage.getItem("game")})`).result().then((r) => console.log(r)) + window.session.request(`INSERT INTO weapeons VALUES(${randomInteger(500, 2000000)}, ${num}, 0, ${window.localStorage.getItem("game")})`) this.items.push(num) }else { alert("Not enough cash. Need 20$") @@ -160,18 +216,30 @@ export default { this.bullets.splice(i, 1) if(v.hp - 10 < 0){ this.enemies.splice(j, 1) + window.session.request(`DELETE FROM ENEMIES WHERE id = ${v.id}`).result().then(r=>{ + console.log('killed') + }) this.money += 10 - window.session.request(`UPDATE users SET cash = ${this.money} WHERE id = ${window.localStorage.getItem("game")}`).result().then((r) => console.log(r.asString())) - this.level = this.level + 1 + window.session.request(`UPDATE users SET cash = ${this.money} WHERE id = ${window.localStorage.getItem("game")}`) + this.level = this.level>5?5:this.level + 1 for(let l=0; l { + this.enemies.push({ + left: x, + top: y, + hp: 100, + id + }) }) } }else { v.hp -= 10 + window.session.request(`UPDATE enemies SET hp = ${v.hp - 10} WHERE id = ${v.id}`).result().then((r) => { + console.log('dmg') + }) } } }) @@ -210,7 +278,8 @@ export default { eyes.style.transform = `rotate(${rotationDegrees}deg)` }); addEventListener("keydown", (e) => { - arrow.style.transform = "rotate(" + Math.atan2(event.clientY - arrowY, event.clientX - arrowX) + "rad)"; + let pRad = Math.atan2(event.clientY - arrowY, event.clientX - arrowX) + arrow.style.transform = "rotate(" + pRad + "rad)"; if (e.keyCode == '87') { // up arrow if(this.top - 50 >= 0) { @@ -235,12 +304,13 @@ export default { this.left += 50 } } + //CREATE TABLE players(id int, posX int, posY int, angle int) + window.session.request(`UPDATE players SET angle = ${pRad} WHERE id = ${window.localStorage.getItem("game")}`) + window.session.request(`UPDATE players SET posX = ${this.left} WHERE id = ${window.localStorage.getItem("game")}`) + window.session.request(`UPDATE players SET posY = ${this.top} WHERE id = ${window.localStorage.getItem("game")}`) }) - this.enemies.push({ - left: randomInteger(50, window.innerWidth - 50), - top: randomInteger(50, window.innerHeight - 50), - hp: 100 - }) + this.getEnemies() + this.getPlayers() var self = this; setInterval(function(){ self.regenerate(); @@ -519,6 +589,13 @@ export default { &-inner height: 5px background: green + .playerFriend + width: 40px + height: 40px + position: absolute + background-image: url(/player.png) + background-size: 100% 100% + transition: top .3s, left .3s .player width: 40px height: 40px