From 4d98b82f3aaef6ab8a9574b40bde7573ab4c1769 Mon Sep 17 00:00:00 2001 From: koneko <67551503+koneko@users.noreply.github.com> Date: Mon, 10 Feb 2025 23:27:23 +0100 Subject: [PATCH 1/5] push what i have --- package-lock.json | 584 +++++++++++++++++++++++++++++++ package.json | 1 + src/classes/game/Grid.ts | 5 + src/classes/game/TowerManager.ts | 1 + src/classes/gui/TowerPanel.ts | 2 +- 5 files changed, 592 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 684dd4c..15fda54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "bastion", "version": "0.0.0", "dependencies": { + "pixi-spine": "^4.0.4", "pixi-viewport": "^6.0.3", "pixi.js": "^8.4.0" }, @@ -407,12 +408,268 @@ "node": ">=12" } }, + "node_modules/@pixi-spine/base": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@pixi-spine/base/-/base-4.0.3.tgz", + "integrity": "sha512-0bunaWebaDswLFtYZ6whV+ZvgLQ7oANcvbPmIOoVpS/1pOY3Y/GAnWOFbgp3qt9Q/ntLYqNjGve6xq0IqpsTAA==", + "peerDependencies": { + "@pixi/core": "^7.0.0", + "@pixi/display": "^7.0.0", + "@pixi/graphics": "^7.0.0", + "@pixi/mesh": "^7.0.0", + "@pixi/mesh-extras": "^7.0.0", + "@pixi/sprite": "^7.0.0" + } + }, + "node_modules/@pixi-spine/loader-base": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@pixi-spine/loader-base/-/loader-base-4.0.4.tgz", + "integrity": "sha512-Grgu+PxiUpgYWpuMRr3h5jrN3ZTnwyXfu3HuYdFb6mbJTTMub4xBPALeui+O+tw0k9RNRAr99pUzu9Rc9XTbAw==", + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi/assets": " ^7.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi-spine/loader-uni": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@pixi-spine/loader-uni/-/loader-uni-4.0.3.tgz", + "integrity": "sha512-tfhTJrnuog8ObKbbiSG1wV/nIUc3O98WfwS6lCmewaupoMIKF0ujg21MCqXUXJvljQJzU9tbURI+DWu4w9dnnA==", + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi-spine/loader-base": "^4.0.0", + "@pixi-spine/runtime-3.7": "^4.0.0", + "@pixi-spine/runtime-3.8": "^4.0.0", + "@pixi-spine/runtime-4.1": "^4.0.0", + "@pixi/assets": " ^7.0.0", + "@pixi/core": "^7.0.0", + "@pixi/display": "^7.0.0", + "@pixi/graphics": "^7.0.0", + "@pixi/mesh": "^7.0.0", + "@pixi/mesh-extras": "^7.0.0", + "@pixi/sprite": "^7.0.0" + } + }, + "node_modules/@pixi-spine/runtime-3.7": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@pixi-spine/runtime-3.7/-/runtime-3.7-4.0.3.tgz", + "integrity": "sha512-zuopKtSqjRc37wjW5xJ64j9DbiBB7rkPMFeldeWBPCbfZiCcFcwSZwZnrcgC+f4HIGo0NeviAvJGM8Hcf3AyeA==", + "license": "SEE SPINE-LICENSE", + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi-spine/runtime-3.8": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@pixi-spine/runtime-3.8/-/runtime-3.8-4.0.3.tgz", + "integrity": "sha512-lIhb4jOTon+FVYLO9AIgcB6jf9hC+RLEn8PesaDRibDocQ1htVCkEIhCIU3Mc00fuqIby7lMBsINeS/Th0q3bw==", + "license": "SEE SPINE-LICENSE", + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi-spine/runtime-4.0": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@pixi-spine/runtime-4.0/-/runtime-4.0-4.0.3.tgz", + "integrity": "sha512-2Y8qhxRkg/yH/9VylGsRVAd5W+dXVPhHTjFk0RR9wEUzTCkdZ17pE+56s2nESi2X3sYNKkz8FowfaqIvXnVGxw==", + "license": "SEE SPINE-LICENSE", + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi-spine/runtime-4.1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@pixi-spine/runtime-4.1/-/runtime-4.1-4.0.3.tgz", + "integrity": "sha512-jK433snCQMC4FUPiDgyIcxhiatvRNSxqgs0CgHjjQ0l8GlY6gPpkkdThQ6GsFNme1SUZ4uvnWwawXFIGjW1IpQ==", + "license": "SEE SPINE-LICENSE", + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi/assets": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/assets/-/assets-7.4.2.tgz", + "integrity": "sha512-anxho59H9egZwoaEdM5aLvYyxoz6NCy3CaQIvNHD1bbGg8L16Ih0e26QSBR5fu53jl8OjT6M7s+p6n7uu4+fGA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/css-font-loading-module": "^0.0.12" + }, + "peerDependencies": { + "@pixi/core": "7.4.2" + } + }, + "node_modules/@pixi/color": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/color/-/color-7.4.2.tgz", + "integrity": "sha512-av1LOvhHsiaW8+T4n/FgnOKHby55/w7VcA1HzPIHRBtEcsmxvSCDanT1HU2LslNhrxLPzyVx18nlmalOyt5OBg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@pixi/colord": "^2.9.6" + } + }, "node_modules/@pixi/colord": { "version": "2.9.6", "resolved": "https://registry.npmjs.org/@pixi/colord/-/colord-2.9.6.tgz", "integrity": "sha512-nezytU2pw587fQstUu1AsJZDVEynjskwOL+kibwcdxsMBFqPsFFNA7xl0ii/gXuDi6M0xj3mfRJj8pBSc2jCfA==", "license": "MIT" }, + "node_modules/@pixi/constants": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-7.4.2.tgz", + "integrity": "sha512-N9vn6Wpz5WIQg7ugUg2+SdqD2u2+NM0QthE8YzLJ4tLH2Iz+/TrnPKUJzeyIqbg3sxJG5ZpGGPiacqIBpy1KyA==", + "license": "MIT", + "peer": true + }, + "node_modules/@pixi/core": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/core/-/core-7.4.2.tgz", + "integrity": "sha512-UbMtgSEnyCOFPzbE6ThB9qopXxbZ5GCof2ArB4FXOC5Xi/83MOIIYg5kf5M8689C5HJMhg2SrJu3xLKppF+CMg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@pixi/color": "7.4.2", + "@pixi/constants": "7.4.2", + "@pixi/extensions": "7.4.2", + "@pixi/math": "7.4.2", + "@pixi/runner": "7.4.2", + "@pixi/settings": "7.4.2", + "@pixi/ticker": "7.4.2", + "@pixi/utils": "7.4.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/pixijs" + } + }, + "node_modules/@pixi/display": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/display/-/display-7.4.2.tgz", + "integrity": "sha512-DaD0J7gIlNlzO0Fdlby/0OH+tB5LtCY6rgFeCBKVDnzmn8wKW3zYZRenWBSFJ0Psx6vLqXYkSIM/rcokaKviIw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.2" + } + }, + "node_modules/@pixi/extensions": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/extensions/-/extensions-7.4.2.tgz", + "integrity": "sha512-Hmx2+O0yZ8XIvgomHM9GZEGcy9S9Dd8flmtOK5Aa3fXs/8v7xD08+ANQpN9ZqWU2Xs+C6UBlpqlt2BWALvKKKA==", + "license": "MIT", + "peer": true + }, + "node_modules/@pixi/graphics": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-7.4.2.tgz", + "integrity": "sha512-jH4/Tum2RqWzHGzvlwEr7HIVduoLO57Ze705N2zQPkUD57TInn5911aGUeoua7f/wK8cTLGzgB9BzSo2kTdcHw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.2", + "@pixi/display": "7.4.2", + "@pixi/sprite": "7.4.2" + } + }, + "node_modules/@pixi/math": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/math/-/math-7.4.2.tgz", + "integrity": "sha512-7jHmCQoYk6e0rfSKjdNFOPl0wCcdgoraxgteXJTTHv3r0bMNx2pHD9FJ0VvocEUG7XHfj55O3+u7yItOAx0JaQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@pixi/mesh": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-7.4.2.tgz", + "integrity": "sha512-mEkKyQvvMrYXC3pahvH5WBIKtrtB63WixRr91ANFI7zXD+ESG6Ap6XtxMCJmXDQPwBDNk7SWVMiCflYuchG7kA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.2", + "@pixi/display": "7.4.2" + } + }, + "node_modules/@pixi/mesh-extras": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-7.4.2.tgz", + "integrity": "sha512-vNR/7wjxjs7sv9fGoKkHyU91ZAD+7EnMHBS5F3CVISlOIFxLi96NNZCB81oUIdky/90pHw40johd/4izR5zTyw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.2", + "@pixi/mesh": "7.4.2" + } + }, + "node_modules/@pixi/runner": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-7.4.2.tgz", + "integrity": "sha512-LPBpwym4vdyyDY5ucF4INQccaGyxztERyLTY1YN6aqJyyMmnc7iqXlIKt+a0euMBtNoLoxy6MWMvIuZj0JfFPA==", + "license": "MIT", + "peer": true + }, + "node_modules/@pixi/settings": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-7.4.2.tgz", + "integrity": "sha512-pMN+L6aWgvUbwhFIL/BTHKe2ShYGPZ8h9wlVBnFHMtUcJcFLMF1B3lzuvCayZRepOphs6RY0TqvnDvVb585JhQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@pixi/constants": "7.4.2", + "@types/css-font-loading-module": "^0.0.12", + "ismobilejs": "^1.1.0" + } + }, + "node_modules/@pixi/sprite": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-7.4.2.tgz", + "integrity": "sha512-Ccf/OVQsB+HQV0Fyf5lwD+jk1jeU7uSIqEjbxenNNssmEdB7S5qlkTBV2EJTHT83+T6Z9OMOHsreJZerydpjeg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.2", + "@pixi/display": "7.4.2" + } + }, + "node_modules/@pixi/ticker": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-7.4.2.tgz", + "integrity": "sha512-cAvxCh/KI6IW4m3tp2b+GQIf+DoSj9NNmPJmsOeEJ7LzvruG8Ps7SKI6CdjQob5WbceL1apBTDbqZ/f77hFDiQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@pixi/extensions": "7.4.2", + "@pixi/settings": "7.4.2", + "@pixi/utils": "7.4.2" + } + }, + "node_modules/@pixi/utils": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-7.4.2.tgz", + "integrity": "sha512-aU/itcyMC4TxFbmdngmak6ey4kC5c16Y5ntIYob9QnjNAfD/7GTsYIBnP6FqEAyO1eq0MjkAALxdONuay1BG3g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@pixi/color": "7.4.2", + "@pixi/constants": "7.4.2", + "@pixi/settings": "7.4.2", + "@types/earcut": "^2.1.0", + "earcut": "^2.2.4", + "eventemitter3": "^4.0.0", + "url": "^0.11.0" + } + }, + "node_modules/@pixi/utils/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT", + "peer": true + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.21.3", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz", @@ -671,12 +928,91 @@ "node": ">=10.0.0" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/earcut": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", "license": "ISC" }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/esbuild": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", @@ -737,12 +1073,110 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "peer": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ismobilejs": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==", "license": "MIT" }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -762,6 +1196,19 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/parse-svg-path": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", @@ -775,6 +1222,30 @@ "dev": true, "license": "ISC" }, + "node_modules/pixi-spine": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/pixi-spine/-/pixi-spine-4.0.4.tgz", + "integrity": "sha512-XRq1yARVoi4av7RXnd9+P37SWI9+e4/f5yTScZPJGB+sY5VcRYN6BYkBQ+y8nUKI1aJIjlms9z+pGxqikm+eFQ==", + "license": "SEE SPINE-LICENSE", + "dependencies": { + "@pixi-spine/base": "^4.0.3", + "@pixi-spine/loader-base": "^4.0.4", + "@pixi-spine/loader-uni": "^4.0.3", + "@pixi-spine/runtime-3.7": "^4.0.3", + "@pixi-spine/runtime-3.8": "^4.0.3", + "@pixi-spine/runtime-4.0": "^4.0.3", + "@pixi-spine/runtime-4.1": "^4.0.3" + }, + "peerDependencies": { + "@pixi/assets": "^7.0.0", + "@pixi/core": "^7.0.0", + "@pixi/display": "^7.0.0", + "@pixi/graphics": "^7.0.0", + "@pixi/mesh": "^7.0.0", + "@pixi/mesh-extras": "^7.0.0", + "@pixi/sprite": "^7.0.0" + } + }, "node_modules/pixi-viewport": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/pixi-viewport/-/pixi-viewport-6.0.3.tgz", @@ -830,6 +1301,29 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "license": "MIT", + "peer": true + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/rollup": { "version": "4.21.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.3.tgz", @@ -866,6 +1360,82 @@ "fsevents": "~2.3.2" } }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -890,6 +1460,20 @@ "node": ">=14.17" } }, + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "license": "MIT", + "peer": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/vite": { "version": "5.4.5", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.5.tgz", diff --git a/package.json b/package.json index 7ea34d0..9862bc7 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "vite": "^5.4.1" }, "dependencies": { + "pixi-spine": "^4.0.4", "pixi-viewport": "^6.0.3", "pixi.js": "^8.4.0" } diff --git a/src/classes/game/Grid.ts b/src/classes/game/Grid.ts index 3a30768..ccd3e95 100644 --- a/src/classes/game/Grid.ts +++ b/src/classes/game/Grid.ts @@ -113,6 +113,11 @@ export class Cell extends GameObject { let color = 0xffffff; if (invalid) color = 0xff0000; Engine.Grid.rangePreview.clear(); + console.log( + `Showing range preview ${this.column * Engine.GridCellSize + Engine.GridCellSize / 2}x - ${ + this.row * Engine.GridCellSize + Engine.GridCellSize / 2 + }y` + ); Engine.Grid.rangePreview.circle( this.column * Engine.GridCellSize + Engine.GridCellSize / 2, this.row * Engine.GridCellSize + Engine.GridCellSize / 2, diff --git a/src/classes/game/TowerManager.ts b/src/classes/game/TowerManager.ts index 1a31cd5..922492a 100644 --- a/src/classes/game/TowerManager.ts +++ b/src/classes/game/TowerManager.ts @@ -43,6 +43,7 @@ export default class TowerManager { }); Engine.GameScene.events.on(GridEvents.CellMouseLeave, (cell: Cell) => { this.previewSprite.texture = null; + Engine.Grid.rangePreview.clear(); }); } public ResetChooseTower() { diff --git a/src/classes/gui/TowerPanel.ts b/src/classes/gui/TowerPanel.ts index a6fe3b7..d6ccef4 100644 --- a/src/classes/gui/TowerPanel.ts +++ b/src/classes/gui/TowerPanel.ts @@ -341,7 +341,7 @@ export default class TowerPanel extends GuiObject { this.damageText.text = 'Deals ' + tower.computedDamageToDeal + ' damage'; this.totalDamage.text = 'Damage dealt: ' + tower.damageDealt + ' damage'; this.attackSpeedText.x = this.damageText.width + 10; - this.attackSpeedText.text = ` every ${Math.floor((tower.computedCooldown / 60) * 100) / 100}s`; + this.attackSpeedText.text = ` every ${Math.floor((tower.computedCooldown / 1000) * 100) / 100}s`; this.fireResDamage.text = `+${tower.totalGemResistanceModifications.fire * 100}% Fire damage`; this.iceResDamage.text = `+${tower.totalGemResistanceModifications.ice * 100}% Ice damage`; From 9c053ece610617c9057decb2b57ce936d7982231 Mon Sep 17 00:00:00 2001 From: koneko <67551503+koneko@users.noreply.github.com> Date: Wed, 12 Feb 2025 23:37:51 +0100 Subject: [PATCH 2/5] add more towers, change some things --- public/assets/gui/frame_yellow.png | Bin 0 -> 58027 bytes public/assets/json/Towers.json | 116 ++++++++++++++++++ public/assets/projectiles/blue/0.png | Bin 0 -> 10950 bytes public/assets/projectiles/blue/1.png | Bin 0 -> 10875 bytes public/assets/projectiles/blue/2.png | Bin 0 -> 11101 bytes public/assets/projectiles/blue/3.png | Bin 0 -> 10950 bytes public/assets/projectiles/red/0.png | Bin 0 -> 12275 bytes public/assets/projectiles/red/1.png | Bin 0 -> 11115 bytes public/assets/projectiles/red/2.png | Bin 0 -> 11568 bytes public/assets/projectiles/red/3.png | Bin 0 -> 12275 bytes public/assets/projectiles/stone/0.png | Bin 0 -> 1087 bytes public/assets/projectiles/stone/1.png | Bin 0 -> 1293 bytes .../projectiles/{basic_tower => white}/0.png | Bin .../projectiles/{basic_tower => white}/1.png | Bin .../projectiles/{basic_tower => white}/2.png | Bin .../projectiles/{basic_tower => white}/3.png | Bin .../projectiles/{basic_tower => white}/4.png | Bin .../{circle_tower => yellow}/0.png | Bin .../{circle_tower => yellow}/1.png | Bin .../{circle_tower => yellow}/2.png | Bin .../{circle_tower => yellow}/3.png | Bin public/assets/towers/advanced_tower.png | Bin 0 -> 12474 bytes public/assets/towers/circle_tower.png | Bin 7248 -> 5727 bytes public/assets/towers/electric_tower.png | Bin 0 -> 7704 bytes public/assets/towers/quick_tower.png | Bin 0 -> 7901 bytes public/assets/towers/rail_tower.png | Bin 0 -> 10297 bytes public/assets/towers/strong_tower.png | Bin 0 -> 8762 bytes public/assets/towers/trapper_tower.png | Bin 0 -> 7662 bytes src/classes/Assets.ts | 4 +- src/classes/Definitions.ts | 7 ++ src/classes/game/Tower.ts | 17 ++- src/classes/game/TowerBehaviours.ts | 108 ++++++++++++++++ src/classes/game/TowerManager.ts | 6 + src/classes/gui/TowerTab.ts | 80 +++++++++++- 34 files changed, 332 insertions(+), 6 deletions(-) create mode 100644 public/assets/gui/frame_yellow.png create mode 100644 public/assets/projectiles/blue/0.png create mode 100644 public/assets/projectiles/blue/1.png create mode 100644 public/assets/projectiles/blue/2.png create mode 100644 public/assets/projectiles/blue/3.png create mode 100644 public/assets/projectiles/red/0.png create mode 100644 public/assets/projectiles/red/1.png create mode 100644 public/assets/projectiles/red/2.png create mode 100644 public/assets/projectiles/red/3.png create mode 100644 public/assets/projectiles/stone/0.png create mode 100644 public/assets/projectiles/stone/1.png rename public/assets/projectiles/{basic_tower => white}/0.png (100%) rename public/assets/projectiles/{basic_tower => white}/1.png (100%) rename public/assets/projectiles/{basic_tower => white}/2.png (100%) rename public/assets/projectiles/{basic_tower => white}/3.png (100%) rename public/assets/projectiles/{basic_tower => white}/4.png (100%) rename public/assets/projectiles/{circle_tower => yellow}/0.png (100%) rename public/assets/projectiles/{circle_tower => yellow}/1.png (100%) rename public/assets/projectiles/{circle_tower => yellow}/2.png (100%) rename public/assets/projectiles/{circle_tower => yellow}/3.png (100%) create mode 100644 public/assets/towers/advanced_tower.png create mode 100644 public/assets/towers/electric_tower.png create mode 100644 public/assets/towers/quick_tower.png create mode 100644 public/assets/towers/rail_tower.png create mode 100644 public/assets/towers/strong_tower.png create mode 100644 public/assets/towers/trapper_tower.png diff --git a/public/assets/gui/frame_yellow.png b/public/assets/gui/frame_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..48de567ed51cf83c4d6093f0c64f8b5a51ceece9 GIT binary patch literal 58027 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 U$_fM?+W-In07*qoM6N<$g5%N-Z~y=R literal 0 HcmV?d00001 diff --git a/public/assets/json/Towers.json b/public/assets/json/Towers.json index 02ad5a8..82a558e 100644 --- a/public/assets/json/Towers.json +++ b/public/assets/json/Towers.json @@ -4,6 +4,7 @@ "behaviour": "BasicTowerBehaviour", "sprite": "basic_tower", "texture": null, + "projectile": "white", "projectileTextures": [], "projectileTexturesArrayLength": 5, "description": "The building block of society, nothing more basic exists.", @@ -22,6 +23,121 @@ "behaviour": "CircleTowerBehaviour", "sprite": "circle_tower", "texture": null, + "projectile": "blue", + "projectileTextures": [], + "projectileTexturesArrayLength": 4, + "description": "If you feel a little circular.", + "stats": { + "damage": 2, + "cooldown": 2000, + "gemSlotsAmount": 3, + "cost": 125, + "range": 2.5, + "timeToLive": 12, + "pierce": 30 + } + }, + { + "name": "Electric Tower", + "behaviour": "ElectricTowerBehaviour", + "sprite": "electric_tower", + "texture": null, + "projectile": "yellow", + "projectileTextures": [], + "projectileTexturesArrayLength": 4, + "description": "Think of something", + "stats": { + "damage": 2, + "cooldown": 2000, + "gemSlotsAmount": 3, + "cost": 125, + "range": 2.5, + "timeToLive": 12, + "pierce": 30 + } + }, + { + "name": "Quick Tower", + "behaviour": "QuickTowerBehaviour", + "sprite": "quick_tower", + "texture": null, + "projectile": "blue", + "projectileTextures": [], + "projectileTexturesArrayLength": 4, + "description": "", + "stats": { + "damage": 2, + "cooldown": 2000, + "gemSlotsAmount": 3, + "cost": 125, + "range": 2.5, + "timeToLive": 12, + "pierce": 30 + } + }, + { + "name": "Strong Tower", + "behaviour": "StrongTowerBehaviour", + "sprite": "strong_tower", + "texture": null, + "projectile": "white", + "projectileTextures": [], + "projectileTexturesArrayLength": 5, + "description": "", + "stats": { + "damage": 2, + "cooldown": 2000, + "gemSlotsAmount": 3, + "cost": 125, + "range": 2.5, + "timeToLive": 12, + "pierce": 30 + } + }, + { + "name": "Rail Tower", + "behaviour": "RailTowerBehaviour", + "sprite": "rail_tower", + "texture": null, + "projectile": "red", + "projectileTextures": [], + "projectileTexturesArrayLength": 4, + "description": "If you feel a little circular.", + "stats": { + "damage": 2, + "cooldown": 2000, + "gemSlotsAmount": 3, + "cost": 125, + "range": 2.5, + "timeToLive": 12, + "pierce": 30 + } + }, + { + "name": "Trapper Tower", + "behaviour": "TrapperTowerBehaviour", + "sprite": "trapper_tower", + "texture": null, + "projectile": "stone", + "projectileTextures": [], + "projectileTexturesArrayLength": 2, + "description": "If you feel a little circular.", + "stats": { + "damage": 2, + "cooldown": 2000, + "gemSlotsAmount": 3, + "cost": 125, + "range": 2.5, + "timeToLive": 12, + "pierce": 30 + } + }, + { + "name": "Advanced Tower", + "behaviour": "AdvancedTowerBehaviour", + "sprite": "advanced_tower", + "texture": null, + "projectile": "red", "projectileTextures": [], "projectileTexturesArrayLength": 4, "description": "If you feel a little circular.", diff --git a/public/assets/projectiles/blue/0.png b/public/assets/projectiles/blue/0.png new file mode 100644 index 0000000000000000000000000000000000000000..5a6892c30d424d9871072149d90686eb6c20ebfc GIT binary patch literal 10950 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 literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/blue/1.png b/public/assets/projectiles/blue/1.png new file mode 100644 index 0000000000000000000000000000000000000000..32ac758319c1c49ff6d85b1f94d8688ed2725ce7 GIT binary patch literal 10875 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 aK-u#Tu={@Me14NkK_oWL1O5*_`h2|r literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/blue/2.png b/public/assets/projectiles/blue/2.png new file mode 100644 index 0000000000000000000000000000000000000000..8f646e3a753e29a4f3a254f820dc63770769643a GIT binary patch literal 11101 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%0ADr#}yGc8@0lQ7Y@8PrTL`)ursKlA9h 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 literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/red/0.png b/public/assets/projectiles/red/0.png new file mode 100644 index 0000000000000000000000000000000000000000..a7075662226294148778062c5b0dfbe84f69a9d1 GIT binary patch literal 12275 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 literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/red/1.png b/public/assets/projectiles/red/1.png new file mode 100644 index 0000000000000000000000000000000000000000..6fa70ad3fa2e4d63d3d8c622c943919b1cbb4655 GIT binary patch literal 11115 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 AuK)l5 literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/red/2.png b/public/assets/projectiles/red/2.png new file mode 100644 index 0000000000000000000000000000000000000000..488b1f0b4da8d854f504d69cfef043efcdcf721b GIT binary patch literal 11568 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 literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/stone/0.png b/public/assets/projectiles/stone/0.png new file mode 100644 index 0000000000000000000000000000000000000000..774f9303579cdda58ecb81abe2622779eea7d26d GIT binary patch literal 1087 zcmV-F1i<@=P)lmt5A)meq((oUFW`Xf0r#FN&GzsIWMrWMXnF_?B(dc7ylR!TL0a|Mw zS(ZoF*48lI5Xj#qAoBSv!#ST zu*2={7aacOMqjthc-)oN`E)XB*SvMiHIrRcc#CwKg50B(1`;N-+m z52b0^sHSPBf-@Si+wEAbRs=yn5QLWKXnJ}YMNue~N?3dc*QZYu#Q@+xyRTF#WV2ba z*=%i$APCs)b~-vba5x+k3I$4~k}e>d&4$zItm&vysqixGgohV~#V&t+qk49l$z<5y z-^Xk=)~#C&b>w!t+1lEw`79O-`?8DZx4p!FdyQYEH)FonpMQBd zeedf{Lnf0UlgV80_4oJV^Z5WM7K;>%MUIY+C>D!&yY# zN$Q!V#sR<0biXBER-sU!P$;msw^!3qPfrhuqL50Z8cmy!Bq?@Y=ud!2r)A*UNF5w4 z^E~$r(Wt9ART`IFegdUg|cp(3KIj~C{>gpV4@0HXEh)I z$1iN}e9z|Q=8d9QsZ{XX-QkWu&E2>E0EkJFG;w7~mQz$3Vlm2qKjGVOcU>J^z78Mw4`iw4$V(54EQTVu`h5$6x#r6;H(c9Zg z_t19~%1I8AAMjS!r*w67)y?<$e8l5%78e&eJUpaaE@QLVhL)F?uWTN4ou`7q;FHfE zsh?DL_VvzB4_5~U26jhAMkrNI1)VLV8>Tap$<)qEE|&|h*E`V&=-N}lRW=o7^|S+t z0#QU!40w+}4DY}EJ4E)LUytyw5_Vgf(R073vo1Ms#dBm?j!BX<^s2SYt%3>$gE1fm zd?AXWzX}*W12h;64TasdNL>>_KM+bLldF@Hle${>e*g$k#ra4_8~^|S002ovPDHLk FV1frE_YnX9 literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/stone/1.png b/public/assets/projectiles/stone/1.png new file mode 100644 index 0000000000000000000000000000000000000000..553f4633395d54812b820ec0da9a8543657315d1 GIT binary patch literal 1293 zcmV+o1@iidP)oyFrlWcw{F99jJUiMXebK_X_I)6 z9p+}FBx!8Nd89~jp0}^R{yfj~`#CK%sc4#Z0T>2;0aQRA92``wjM35rkwM@Z5U$ch z1@z6Eh(@F8`Sa)XN)5#(xcNCC*Ju_pKO^yYoM<#U4IFKnSWVMHrkkO9`^4jMMn^}f z@dOZD5PAt%up%@Xjcy7B;MlQaVOO2C<0in^*ch|3vs-@-1Jex`t7)2Sa(Tf@zt+}P z#>dAi3B}ws8tbg4X<^gNpp|~@?d{02%}Tw{KT% zSBYC&&fdR&|5|%{`-sQm!Rz(n@px!!YeNwJyLU;F@OV5JhC#7d#4rp10)YU2zn`mD zuM&&JwwvZHZY_(AL?UuNpC8HR^Ho{w>+7StyPH5D@K$}DLMw7>$Jvoum4;!ENF+!k z5+#=ozL{VgUdD+rLTe%giBCwsa6}KEwM3N-S zVz;_0G!lVorK6(*z>e5qCt^?75!>0>NivyaeSN(-&e}y_(^(s?zQwKJHUa<(3k!^o zkK65TOY8}|vn?(z+IIF$ZUwgy09aXBaT0=9c6P+cY|oxOa}?Qaax1uvKqix+P$)Q! zMC%jl6oH|kA@=Oq<5cW$z0RJtJA){S^z`)L^ZAEsey4g7K%fEUTGGIvEccY$Ow$>ijuC83AHKbOR=>iyiEJyPOUa0>x|wY4>C z9lTFULIHLLA8dZrfs2A$2-p#udY&u0&S!m?sm+k0D5~fd0(K6A^qQZgg>HJ^eZhL# zOAFF>ilUsUC#^Z=`$yn;+^ZD@kd^&Ja zQ53b_9IWXGn5D$0l{Yeu5qSLgan(A%oMuPw6P`cXO*U0Z*RLpwafk3UrWf%s}pSA(e(o$4`ql%(T)OBdMfk3Ur)zQ(x zom=nm*WBPlXJ_XbMNv|9pKx0c2)T&>fFKBTb#+}<6y=iTDDKPa$iNRkC|$Uv2fQEr zABeoV$Ag#OV!VEekB`Va{Fnm=4&e2A?JlkqaHihJUWwV$X1pj%;@&b>mos0Gdv%Xj z#VncPBzISCGBq_-S9VaLSmLvqSRFv}4B!=Zmb3S|{AI7F)j-$vignvyFkuQ+o#5s9 zX#(w&lU(nTK6~MBJ*=CLDhTkpm}UK+I{;);0d(~cyLa~!=#TN><<~rXbeFY9JJ_{r zSJ|L5Gc#{qURD(4+|trg&goicsS$OBfZ*!J_o21?k4OHP`ZO4P=U{06{{1BRimb6n zI@!f<(;ss7?AfxkI}(XF=F`dv#_{9FRg*JwvYVxw*w{E6`aAvSk$dy+hxYB;7vzms z_2&MnnnG0?SQ_?sXe1H|1HrkuxnMjVzhY(othf9NeQEvy7dK6e00000NkvXXu0mjf D?#O}F literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/basic_tower/0.png b/public/assets/projectiles/white/0.png similarity index 100% rename from public/assets/projectiles/basic_tower/0.png rename to public/assets/projectiles/white/0.png diff --git a/public/assets/projectiles/basic_tower/1.png b/public/assets/projectiles/white/1.png similarity index 100% rename from public/assets/projectiles/basic_tower/1.png rename to public/assets/projectiles/white/1.png diff --git a/public/assets/projectiles/basic_tower/2.png b/public/assets/projectiles/white/2.png similarity index 100% rename from public/assets/projectiles/basic_tower/2.png rename to public/assets/projectiles/white/2.png diff --git a/public/assets/projectiles/basic_tower/3.png b/public/assets/projectiles/white/3.png similarity index 100% rename from public/assets/projectiles/basic_tower/3.png rename to public/assets/projectiles/white/3.png diff --git a/public/assets/projectiles/basic_tower/4.png b/public/assets/projectiles/white/4.png similarity index 100% rename from public/assets/projectiles/basic_tower/4.png rename to public/assets/projectiles/white/4.png diff --git a/public/assets/projectiles/circle_tower/0.png b/public/assets/projectiles/yellow/0.png similarity index 100% rename from public/assets/projectiles/circle_tower/0.png rename to public/assets/projectiles/yellow/0.png diff --git a/public/assets/projectiles/circle_tower/1.png b/public/assets/projectiles/yellow/1.png similarity index 100% rename from public/assets/projectiles/circle_tower/1.png rename to public/assets/projectiles/yellow/1.png diff --git a/public/assets/projectiles/circle_tower/2.png b/public/assets/projectiles/yellow/2.png similarity index 100% rename from public/assets/projectiles/circle_tower/2.png rename to public/assets/projectiles/yellow/2.png diff --git a/public/assets/projectiles/circle_tower/3.png b/public/assets/projectiles/yellow/3.png similarity index 100% rename from public/assets/projectiles/circle_tower/3.png rename to public/assets/projectiles/yellow/3.png diff --git a/public/assets/towers/advanced_tower.png b/public/assets/towers/advanced_tower.png new file mode 100644 index 0000000000000000000000000000000000000000..50f838bc99f470c03ac968450fabc3f10ba04b31 GIT binary patch literal 12474 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

P4_HEm~i>B?n*tvZd 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 RPW}J@002ovPDHLkV1kWv_{abN literal 7248 zcmV-W9IxYvP)}t=f1pvz75wYV*hJ?o3=WmD-xB*&J0{m6=Ly@T_x8%50oul1#?I0fW~z z5OW!W0f8hyNGz4!aP@BRC|mblF#^aD+Rzx)CS z1L}<3vVaAc<)^2m^g(^Sj+r1p4a@PpY#S_T47UnoqL8 z1xeeNxMQFR{Xi$MzDm@)(_|31ENT0!DY%{k*?s~ExfKsZvPDflV^aJ;mgV?Qsc3Xi>h%a)6Qu>}c9ON*#kiH6OQr zzMa$sWcl0Pw>J$}zQwmW;wSmzKJGOzXG=(9DU^tS7# zeA{;{ztv(ZlrF9!eXt9ssMM=)t5%~{)28}`^335in4^tV{}=tk-S{7JqoUI4Mnc($ zf>4p{(6rmCm7Spq^876wE8al*)ovn>T|xHSbr{8Zp&z(0Jt(MEv~2Y)2L>SdT|Z`= z7@+vlB|OQ8tL~>rJ^(!F2M}@&;T^^Cjw6&(?O>Dlllpld(T`uK1GtGfjvKYiv-5oc z24D{e7uu0=%#*dFUvJMPy4GBBK|3MjQV(k8e$?DXSNrBL*YvC1bu!hSxqRC4wXArq zac&K>La6EO*ykJE`?x+b=kZpy#@TY$#o5O(+wo-XM=rI`iVKOnfB1!?d(H7!6Pd$Z zb@FXZv&^#`UY8d!%@IGv3#)1uZKZaUQV$3f{=wa-J4L^ ze|tCA|29ME=U0gquTTH?%@@z!oj)7<=*nkyyc}HLbv*WylRHX7@f~W|H{ANjp!_3a@0e^SGU)M zHB&l1-@uT6E7$*_gVyY6yms-%w@+@(pBw7{xVittCmSD5Hl>bU+#{(NT%p5z24Rol*cPSYDhk;il4Gms>Ujq> zzqP`DdhTf;`ppMXT0@IEPh=~Mz8-L5#g3uM0@c{yc?kP z$!-5TxS>5ZE24T=Cy{;2iKfQ$fBD04d0O{!=~BAXfTMd^zv&#i9{(XN?MK}XRiqy! zzY&C50j%LKb|LvZOFCEMcCNkjsz<+(Z4Pc~xxV&~cfPseiQcQx2iyo7`S6}CB-?i$N6K%lFv;+r?pQJ~fW{p-hC$=K z8)@0I)lVp80<`|?yDmm|ues)J4;2xGp6P*MD)Aj}z$q%r$lb!zQ;wxWbBYR9ykYY1 zcx)Ap?ZO*Psp5yhP!}IFQS&6VR>0!2SFn~Yro)!cjEs<2WsagB#)o$OD~Xn z=^W;G2tSprC@C63-T5q1XfLAp2IeoGpDSlmrzdSo>$WCm1K+m$70l!%`p@s>+He=| zUffFXvnGvzoreq0Lvg^>^V}II3_xH3IjEh7*iS(=r@4k{QD5owft{*MJ3Nm(jnw!lkb+=d!MXh6e2MPz+do#Kx;p!n2wU#D$cCP)T=oc?bi>z68PkxTy#njeMe{or2*%8Vv%?j6u$aPtRXja7bE33^H+k8Jhb_1OlL zRj%oYl8N!wb@Fe#MCr|88o#s`-+g0 zpA4;DvGcD1a0dE}5F`=^DIe==w$|a7F zJPktjw&PjTCIhh-KhK({R)Z|+2W@me$=7~NVDkWKqvMx^)hx*xlB17Sq&m4D{gj5! zJv-Ts61i8f-+dA1`sh;H9(9%YE9W*D`jdJ<35p3d{Bb6orSNywZ-UEA>zL{4tu-Ng zdK@L#V|xRikS+bFlKu7x$u^D>+I0nOEw>Gttwna&9{*mc#c9;KSK{qx!MHv~>Ed;) zc%JaCb%gJek!*JwF?Hf5k*!f=Uwt~#@z;lHb?y-;lO0b-_3d?3-(K0)k1CS*mIS%w zKr@#VH04~6C1<}RYvFE$gKt9z?HhitoVtyX{^=p2kKRk5w+Bhmz#PE8zLnzT7_nas z(fZN0WrNF{PLVm|rf6DoA2KR}G=hmP((L0qiniO1d+X9SDJ^fqnF_4JCN)Vgn1ERA8`k^5{j20b0$e~C`a?d&GdCh zMFRWMWHN2Uk*tjS86S$%j#N4h&P9+a=Ru_A@8cM)TzJ!$2X z9P|+byZk;=q7Syx@>IvPa;O1G>A~@Q2wS?2VA@TUWE}tWuD*Q5Yp?k7BEa>lKxV1H z+;h5Y4jqU83fZtv_+sT>T0<#p!91L zvjID>1)(&6;;#}goO=vq>}jvv^5OzcnV1MUiTNFW=IN^QBu)u6e;mmvf*eL_dBFu{ zUI1Z2=nD||G>9zZzfGVgO!Mz&<5kgTdJs@3cfK$L;~9cVkD@FT?7??bMv!BQAX zuYkyd6rlNI_t9|Q!uo-YYhc4;;PK4{*71c6$bQ$^i|yTrM>m5<0aXEYMhYTK)Z$r? zY6hL4EoVPG&*c;)ZJ(u1)3nao&LKMH15@S^m3-(pz8+B88p>dl-@ZI@rV5c*zzt3Plgu ztc+nu=!OJqyHGyfg6}t1QAg9&(~B|SE@)T@@q~tc&sx&mt>mveXkLLo;1CWu1pE$! zHN=iir2a7&P9p(gQ`vka2_yx{nFE?*&9@{YISH*C46=*u;0k%#$z>JH_dt69k$-_) zHqFp=FPE-HNF)_HIwTs)nMNSs!y_zA(<0a(gJhn_e}00|H{QiRn!%&0m?KFnzX##- zQnU>Gp*;3yc48O~fq;*aZjsGdkWeP|#3&hbv`1LG!w*@#Ld%fd&yHHVedy?R5bwe@ z4cxT~ebqDItysK18=4Zr@vd}D6hQGXa_ucnp7k>li@M)cRaUQRBp%NY2uSqxHDekU z=^NvifIK*k&{X230(##n#FjO9R2M`^cWpCijN>0WPdFE&;9WtaA&6J=Vp%pfZo~+M zqV)G0#A5K?B`=|%LvOdv-5W}H5g;ib$=JSLkZMy=Jsooa%T7E;x*%w7LDGfI!0a3= zvIlMahm4F0e(`Dpg{(!u=T>H$H?OC?t%+1JLn@u)>JJ_52b>ijT<`Y+bDD4y#Zpe1Sik>IrpBAzFwW}A94_C z6IS^C+O7tVJGI~)skO`Ctb)C4qA{w>wCl;^c$@d)a04;3RF%9KO`qhz|2a)^yvXLe zy9jAxTpJoBl}Isi-PJ-vcl}>_)S>b10VJ=AWVo6ndRNY!RI5Hp-VlwY1d3w;UK|HT zZc1FcA&7($B;#qkns@TC!u#&qM1TJ^esS1gU_8XX`VSwOTg%vnV5dWf8b;8=PKZQehlD53Ob1gta zWbVgQy_!PKQCYj*%gR7tUSJ+}V&yI)?3zp7`seGX^;d&tmqxG(L#Tl+Bs`cLn{BE< zD5CMvPv6Z$AM54HxlvL>{p6BU`Pq19H{+e%*d-Gz*JK?B@;Qm|lpvdy3HTyxQen_& z;dC3k@8Rwp9k8PVJ3mHj@H%57S&Y0zB9>oRnIz3U5#HPu zVr6%f)oY@(w1-grK^$+(Tv>nF=?C$!6PcFDaS6vjl9hS2Y_87j1>EO3XC!|HrT7s7 zE1xQ#_yH8gusDZ9thNaRTUgZ>W_5QQ99L8FS)E)~$I=~&d3W22bdh4lK=Z1kvnvQW zSvG8LB^-7&P4laG{VEL+KmMSnqTM4rjW}wy-kzwWLi+k<8T9;0UT0Q zCiX%IH3W` zxuCtX=*N7@dE3cqW;!9Iv4hCoCbY);k;(&*2%@k7g$)SuIE>*C!(j};G+!or5#DA5 z%^)l!$Cxx-$ti+XK3+DD)7B1>ijch^duy7WOl$e(wax-HnU*yq97ACUZTjL>A&S&^h-}gGp2hg^u<8pUDeANn4wh#WH-M8z=q^_?cNsHx z8CeaXhI&!`Yij_!H6pB>n^P7Cu?kZ+HkTMD6B}k#-#rykb26|Afu-mFaUnl+vLI-M z*N+Yac0Y*f3nIx1!pcpaOq8x7M;}89Y(^9>B1%_X^R;r5+9#_a6kj{Cry1GXgyL(j zFC-&@t>45hjm(Pfxx_f5{pYbwlb)Rq&aP|omt0__JXUgHZN&va%O5@3pp&~?4#*R6pb1I#mftlb$vdY;3M+?W=gR&x zj&O|1>zHmC*)*BhO%gW-F^UC3O)Kcx`5=lqJKeDIgE*#*aBR}w|6cu|0pwplN_6d7 ztWq95b!PUUvd6%Ow{V0J4c4K6QP`o~5Pi1l{ z^c&!qNYO_TrK?C<2a<0c_|{GR5|kM$E9lttP>d*Eob&wY*iA~=sg`&#lft%4a*4_Z zQ54lfq;)05Y?`*7yJ`b-Y^+k=HO*Lz!toOTr|Sl7+1d-$*s8OWg<|$x~0agkjj0z2`C6U&Z_`?y5VqsE~jG~+O zt?Ii6e>j5T@!$`;%eeZFA0atBSQVOM>ezb3a8kqT&zsbiZu2r-cnkUx5~ zVtgB4B(;$9E$T<--g}y7fbUEtzCHr??ZCg|J|s;8NkY*YQJNn{q+SKdgXCL>q^$Q==1S3&byM#08o3lUv z8FqTgKVA?kcH$fPNj&Yq?8&RNW%%1Y*{Xyg~7mv4OU*n(LsdL^W> z<&o5IUa<1rU!q}`qh^WxQCHo4Tejfs-GJ8Hi*4%2iU(QsASo)sh`GSb*s{!V!r4!J zo&Y9f z(%G|=&Ynfmd}teb@vK>kXYE?lXd^Obk(|t2t*=E(^O|)yrjBEoIK=|S&=BU(P)$$( zBGia}|5F@&<=rKnbIEINvuM2R^s!lr9ePL_=z_^s#-#R50Gu#kwXGHJ+O;UHZ7BW# z-mY~>vOL*lu86=@5>Xt-eHQ{__y$g~fI2it>diN>Mq^m9c~`fmfNvC@_@jsjMxKNB z8QNs0PP88WPv0GQv>YTp3p`SF(0U28tOc{$;gJY(Wd3FHqNFbbOf?w*UI4zn@kLU< z`HzvWEN9GhTN1zVMfL;x-+P*_qp8MUZw%(UT09GT`q@sWYnsxM(-2$XL^i_lOoZc^ z$P1@Vo%%|>j=dykP0f+H;0@e+Z|8ufXL9Ja0W(bm>R;ryY6 zgRvXP7%-}J~nx>IVCTVS*N@{f!Ziq0$ zMkC>-)%?4!ev@D@NIswEi(mXAvDo~nh~qenjEvwo&eXQ1RWMLH=ga5oTZPEC0^0ca zIF93BSr%hsV^#Ng{PD*L2Hn1XFc{?V#~)wNu``)W1+aO$Gp0!*k+}1rIgT?haiOMJ z{ehU#(aI=z<;s=$JII9sxm<2B*TMMs_(ZC4XPYPRLa|tUW@Kcf!aS$T!Gi|@*t2I3 z2M-?P%{SkibMTo=rY5jL(Wt6n&9STj;P*oL0Q7W{=vaFh>J)cbj0$RKgAV)Kg_(r#>(##|&^USMxXN^weUU z2~AT~6;-W$NrqwII1Z+1Rzy%SBbxTC4*&Qc4xc}DtH!hxXfFVVXE@bGNx-MR4BR_W zkJP%NEAQ#^%(-x$5D%U-#{VRwxuIeABL7yLj%o=W6C^%dLn1SwKrB zlZ=gxO#*rH$tT&fXAj-o-Lv3UOFuH1%x$^u+iISvR4OHeh?=HJG#ce=U;7&2aCow$ zvTd7uK0gbNWm%+BDT>8n>R%i*;7`)&^mnq^EQv&dn>TNwX&QdNe^y#C5nXj%pXgeo zmJL;7-nHZh4%#$$1Hjk$0EouMk^c|Rn!>TD9i{;Q0000-EbLbd(q_HkbvTVt=EG&y! z+rV;Fv_QdbYS{&rtt7<}NQK}8OtNfMNKwH_sQiH`9793vvWid4Vpw0Sge@Ui_bqEA zjWlQX%=G;`U;gNxo@r^0){UK4)m575-|zR{`@HY{-uxu^18LIQ9tC1R5QtCvssxmQ zERYfAHuq+aP26HIL7)rhtioxeWq^yq+;-tz4M|$tHDD>Q_!=Hl0#4rySjsH`lmNC| z5um+Kt(oDsL14ACwr{9He|JEV*7h!718`-NI{NH)=J+-NY^vI{cQ&Ldpw(A(bD-$} zN1yANS z%lzted+WCK#}TFu`Vze13~HM-OWLwhTHE`Dxh-?kAXU|B^}OC{O5J8|elA(D9N{d7 z4lZHMXNm-)CWF6#H%trY+K4K!>!pyVb<_f-tuY-!OHns@C!=0DITW4=M%dd-@RoIu}XChB}FT zwu|x!h3o+^QxIDVMtkM@!Z8@%3w{|Ee9R%Z7`*->e*Zc2%}a3)9YR}EaSndpFOcbh zX}t{q7q2xj)*1w~x?0k>4pzQwGTfK&2hOF6=`Ev1TgVe7P)1%y4eQ{(4VkyAOQ?b# zgRluc6c4XUc&32|VoJkmt&$S_uV989zFQEjAO z!cOPN9U2AIbWoZDAOxs$d#ww5SFr!5%NrO`Pj#MGu5QxWzWf>i6@k#@kb-4mZ8(X45@0Q7hj{y*hnjeKNhb2<~RT2kFX}F6zeo1tf z?%OZW*_}aJNpNDgC)!Y&%3jfkmERtXC_&wA-m-Ma9WUuZSAA{ZOsn48Qk|sY5=v%R z-ZFqJ82Gss%D=u3ys7c#jxI%Ynuxay(boK1Vx<_6zk-?cNNam$dH|};5J@Ml2#zf1 zSg&tF7Fws-9TW4B<+ywIf;#1fBeCq%HO3gy3xIEcny?24sjLu*XAx!|S=R9fo58g(KfV-1k@8PZ)vH=6!`i#|fm6UavI+NOqa~K3dk&pFrwFwSAj~{|I*fNF39bcNp<=l1TyR-XEPW50!eu2E>-Dt_ z&Ma89%k`2}m7?Gk0kU^(0bj2VD%zspDdfI#2!Ct|LJxze^rQF&qL9KL4I%=0L}&t~ zZ2}>JT1=Qg067srH0KbCh8aM{ngK$>y`Ug-2ExpMVpkSqYbWKWv-soPU|0LM<9J>c zS?oj@W1vmBNq=}5*2@OwdmE`-)@oAI)ot+=shG28(`A699mClj#e9DV_h_;5JGX?; zBT}eg9(->eL_`WD3BHPOOcVjatfYF<#U06@#$>A!4nWyPs%jEHk5qgRF#r$g6@{Pk zg)D-*%L5q&Dv@(<&oI(0BJCEW-Gb1vi12w39zgN%k@cZfnvMCu{zjxpnA`dy%|1Q7y1W0C#Q z5Z0?>7@p-7Y&HGMw-aq2zkBD!C*D}=ju)egzWVU5(eHe%0UI?e%x!OJ(`rAB?Oq&x z_B)(VZJL?~NOhiN#p)B2fTYl3sLd@R_=z~`iu%I6(uz=8p?M|Z)ZZYR`f$n)>1X!h zTQ1R!y%hGJA+l~2M(ctKL{}hAy$(B1Lvt(s=8qr(P6d$CiU@qZ0;;Z`gh}&P7SZ3< z<)#0A@ca+oh`SS(Sw54ATSNKKqJR6))0I%=&<3=g7w4IATdfKpt?hR<466LgEu4Dm zZqA%qO?IM#%@4dJ+u}>5VsxP_F_q9aK!oRhhBboy`sYX=zKGG8L@{-W$Ihd-Bxw88 zC#Kg_Dz&BYi}0)O!3X{df<6cXBLA%-Idk-J_G`Ce-quXZ$5xMBc>K5V=Jzbw)pY;z z1GQ`Pl{?W^UYuvfyC)?n(Xg?Wg;sic&vNF}YT3EimhByzL52`vl;BtA2LxcYl08!- z(3Yh6p{12%J}C*^-hp(FPgCI>NC$E50EFX^AA~>)guhq;lsgJ)2ttcz?4#|0y9jo- z;fLM$!mmFJ(pw?ntWeiz$gGVw*i{EfUDks?GK3tT9#P%?ZA5G z9QummC<{_(@A)Q5$0v}ZzeZ*Y)9X*7y6v-}QC0I5|9)Q$+>2uy>apF36GtH41%G@7 ztPwc;?<=5|e*>Z`XH^A`KMF<&6p2h_K}mqNvSNglj%tehzme`CKm}Pwcp>mVfUmAb zIs4eO;BhM$)2xM8fb`3iaR4m;TL`T}y1S9?4t#kEE%2YgIk*@7t~4U@5OU%f+&w?J zM2Y}1;!5`Deft+*_tjucL=<-f90yTYi&*$gIQk_h^;JbTTp4_5$*96H`vVR7Z8jzdL zk=uC;fT5>$p(jk5Hvb;{0rID9Vr!BOu5cC<6>GRO`*wtMQH*ma$q*f%Syz!>_cX14 z`ZtXH?0=Cxc!J37Va#>|H87QidSxGL(57^@M6s_#rowh}s$`tVH(6L25$MCm80 z3=UoWMu2cP)$-ScEiCv?pTIspigS7&u?-1eJ7!my;oqD?k4u8xp$2S404JL#vttOo zB{17XfD0mwhA3=63g=q8=Kvl3x{vp*1 z{$z&R$F%BxRL|^El<%38B7|O95x`gwCzz;)S29oh;m_dv{ha^tlbG!$p~V4|fJ&&_ ztap%uHhx)B>K{S`s~f!SP2}=ZE1a+T7gdEwG(x!L>l6zknBjkgs!C+`E5sj2kp9Q< z%f_n*K+(XeJ|niVmB<|l#O~vWw~phz_oL8ON${mQ9hkdj76hdRB*_a;CoigyglI=J zeGXZ897Gg-(SHH?ClwDrIJLs*SvH}CsuEhU5Ofu%wFy6M;TS#g7tcRDJd9-_(C|l3!1ld(E8Cz3?*-0fEdi6oH>R! z2}y}HWEV7HZp%n(`|Mgl4=($w4~-!FJVIH3YJ3s=aYWPitGxe?*t(Ns|GB|Jg6H8C z@(e9XuM-CtXSo|+c@$3l32{3nRB=PKch8b^xh9?hIliiEi>Hz`TE+4k-Q z5d>i*1$;G%;(MsZ7m@w}Wa0ZLq5lX7WZ`j~wix>RZpZn@<1>P3Uja@T(r2omS`D0q z%{U(9I(uooc!Kii2%`Z5$MpetYmZH9YYtVdNU-k(5W>JXb&Twrrx1CI*k7*2vK$Ke zA|=2&{d)|%ShEr!kxCdDP9ayPKqQ$F^)n(mJJ*0?Rre6h!%_% zszF9e(o(vBqnL~;2?|AlWh)F0HIr(qR5gml66FaO^|^g`9Z6yvyD$x%NH~ZwJ_-{V zd{v`xdYn-@>1wx8jR1aNS*;lB>0Nb2S%HplZUb@I9_QIhA?Y&~VwKuRCa zE1_y(#`8M1xtMII14l8zgMlH1hzYK%a{gj7skW)e)a&i0xZw^wQ(%pN=N4FYd>0ut z4hwo2b4`w)(izS~SbyK5%9c3_p0TLTt5qPZqBuTIG=51sVs0zdAPIBZaP{QHjE1~0 zHbks_BQ~!faqzV^6nC(;U%zx^Csv^ae>_d*@7{osEJOo{wkTR#6yL4vBYK*Kdw7K4 z#4zPVrDkN8#&P@zcD4FiRx9B{dJM{CNu)ZTvZZq3bTha2l!=4|{^mQua`Aly%T~yZ zTV#zSr`5$ogFUpg#@P^Xi6!-#)A99=%K)i#qtZ)uU+m_@%@So3uuy1vqCf_D}aQKueIYD-7^Bx*+_1rAE#88 z*PfkzkV3me|7KJ<*D5h~;Uw{{Wf*M5VHciO3H5|GF%<)yxIpsbn~83^opLTuIiDv# zQ6xEhiull(YKo&XthaLhf=bw|bYCuJ(SsVQrdMpxpiv1TXKA^7kj%J=+n5?%!QMe9?h9~b5fYwO48bXVYdDMO#ev& z(ImlG0)vNfIgG1;f`a0W0nqW4kJhdaM56?vQJOozFO6W8ikw;a0Cw4BY^;cDyLDbS zn;k{fJ1FD~e1Gm^Q^BxKGG=0gleBk5NVHeZiz%6QT)@|7Kf)jgqq7l($}ZUG*`v5t z2~`tRSLUrtj}Tre)2D&dY_@6e#2yyju^G(_qOl593&kf{?0>li@|Ra1y3LzkpXHj;{} z`H8vVOpf_dEtzhIW;(A_2cs%YXJ<=Oe9ytLN@!-VZdIhR3ePx+@9jtN24;q3*XLN# zm|3wGY7@R1r>$ll6%=VS7LelA0L^~3s2P>sIyk=Pps4kwky6&p%y#f#}_t= z)S3IVqC^UJRxk=}sB|M}u8-ADDpuP7lG&6{llH!Dm=lEA#PkM{W-=xi&+ojJQ z!Sfv2Zd+S}RT*Fxis%CMJ^1PfKEwF>2>zlSczPF7Z)DG*0!m07G0QnKUpTb_nnE+8 z3Pzz7L3lBFM(|@uS)--kWQqGAv0nG|YnA==wZQliKoXy)=#Y*|~;?Xw<#*)Ol zmes+k48FByAldpL1_dNV{7STs&&V_^!!t;V4X7wGf~XZxO@xS{5=0Q5dj4#VO zh|#l0@ja(j_#C@9OjGAQNIC!6+F2zvF+I|pNKT~j7uX<@p*)+jel4wg8(dy>n zOvba3iOp~$V1u-#w#4Tv6j~+52hWfjxln`S`x2+*ns>Y+QBs7-6xC9e{$qq&77*)LN~Eoua(0w*b`&c+ito8~>NtH+W+;ZD=@_9Xsx~EQMkrR3 zJl85xE)?+`6NE}>VieD@u}eAZ;>^ddv*`@|Cr;PkBs%Av!AZs9;Afy`2iGFq9{}PR~YT5oE;_F)=e)l4}Ujj-ar4J_!L`v7h!o2Kv3 zQSxKs*R-Xy&#`R|ytae89@?D;OcQ2FtU{6h`|A#@opboFWiw!3Z~_2O{+` zWuY<{r<6zfF23hd811ivcOQ6d2Wz(6UzHLcr|hE{3VJ|6GZX?%Ej7uS zoVXr{AXJTLsvFNPQ><11rUL`;9EoFjxRzgoQ#-NHks{HNBAd>T?5O=~<1n_@=Z}wO9e9e~oYXfp^AJ_H~0*shONQMX{ zmtYr0amzWJa%Hu(Km@xmj$If>%8J+VTp!<)GlH3^#gd6Sa0g!7fn(dGx))YUCN`Oi zLk$7S3=Fa7rB@~ajRQ|!E2QrMe-3mH^_}OR(=V`g%l#xeQgv!l%#6~sa4q?Cfn?A9 zD4I@bd>E%VjxX9M6-LO7+FXw|X?rf5I88R4soAFP)hmc56Ay@#R0zXc%NvVc%>0cNBbBT`=* zEsqaVni$3{=gG|zuMG8_r}1;J?MtP$-VmtMk1Hlr2Z49 zIk|WLrMB$JN1xyM7xTul*8*x1R`==^#F7b&NE|yqcGeawRmBjbO9uL)>BOPUsp(P zzVOnFLE@xQ?mKjpp}zAq)x6Y%Jo^03FE^YOT?MFS;7ha& z&6rWjuC`5=m{KlJdSHmmz~Ee90Q#!Z^Xe6)j#t~h{h>|WRZyR9#4`n>VPeSyu|(oB zx7}#VrZc#QVb}H5KvGD`y3a(=VEf=@9VdB#y96tQv50gG~ zf_%QfxihB;GkYTIA}FF^Sr)c0nQ(jxuB6~fMy#p(e(>_H@7;)b-0=4&)h6n?WGx5N zG|5Vh_kH#Y031AckQcuG^?C32Jdc6l32sHZsqb_fAD@cZe(-}IaPZ(ko_OMkhVHd2 zi(A!hnj}q5a%^mjcs$N?&ppR;&pp@By}s|0&1P>I#G58bV`F3ZzE7c0U}$Iv$8j14 zG%_-R>$-DZGd4E%&WGeU&i96ghjCpO$8i`M8e(j0j8dsoI}viJ4a#P-3=R&?3Dk96 zhKGl79Oub*yt)D3avbNufq{W_(P)%NBtoH3pirpPeiTJP*Y$=~$8}xu`87`e z$8O}A(o!g?&3Og;&G+HssepO~2Ft{af1p{i<~+Rb2(`l{8^C)4S4-@C@UT>`2P zcno+fnM`&A4+7l_I};yC#3Snl2d1{ahcecy)#P-470#-#`A-t4m5}XzSh)!Q?G&&9@rTzH7MG0PX`mxntL{nO<@BSHL!)_g2xpE|Bhe z@4p+r%3G7br>MM-GCI$74^}_#?%ZuAzBF=(lI56zg} zYDwBd?M*BVwG&+aO2l`)B&C6$R&7#u)%MKP`hY{X0?>7bldLYJ5gpX%bL_?ZN8erEe6Z z&MOS;daJ6l=LSNmlboOY{p&k-?>%+=@WJzQ-DBQJNxIAn?bvnfg)^u6>AP6j(HI#k zr02WmI=6$UFINS0%j2ADZT}CSU3tW8 S1L%JM0000<3=j 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 literal 0 HcmV?d00001 diff --git a/public/assets/towers/trapper_tower.png b/public/assets/towers/trapper_tower.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca9dd9b068bc0aea526fcd3ab36aef77eb284a4 GIT binary patch literal 7662 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 literal 0 HcmV?d00001 diff --git a/src/classes/Assets.ts b/src/classes/Assets.ts index 0212684..efcc4d8 100644 --- a/src/classes/Assets.ts +++ b/src/classes/Assets.ts @@ -17,6 +17,7 @@ export default class GameAssets { public static RedBackground: PIXI.Texture; public static GreenBackground: PIXI.Texture; public static BlueBackground: PIXI.Texture; + public static YellowBackground: PIXI.Texture; public static Button01Texture: PIXI.Texture; public static Button02Texture: PIXI.Texture; public static ButtonSmallTexture: PIXI.Texture; @@ -105,6 +106,7 @@ export default class GameAssets { this.Load('./assets/gui/frame_red.png').then((texture) => (this.RedBackground = texture)), this.Load('./assets/gui/frame_green.png').then((texture) => (this.GreenBackground = texture)), this.Load('./assets/gui/frame_blue.png').then((texture) => (this.BlueBackground = texture)), + this.Load('./assets/gui/frame_yellow.png').then((texture) => (this.YellowBackground = texture)), this.Load('./assets/gui/banner_01.png').then((texture) => (this.BannerGemsmith = texture)), this.Load('./assets/gui/note.png').then((texture) => (this.EndScreenDialog = texture)), this.Load('./assets/gui/main_background.jpg').then((texture) => (this.MainBackground = texture)), @@ -186,7 +188,7 @@ export default class GameAssets { for (let idx = 0; idx < this.Towers.length; idx++) { const tower = this.Towers[idx]; for (let i = 0; i < tower.projectileTexturesArrayLength; i++) { - const projTexture = await this.Load(`./assets/projectiles/${tower.sprite}/${i}.png`); + const projTexture = await this.Load(`./assets/projectiles/${tower.projectile}/${i}.png`); tower.projectileTextures[i] = projTexture; } tower.texture = await this.Load(`./assets/towers/${tower.sprite}.png`); diff --git a/src/classes/Definitions.ts b/src/classes/Definitions.ts index 4af3c63..9eef7e5 100644 --- a/src/classes/Definitions.ts +++ b/src/classes/Definitions.ts @@ -56,6 +56,7 @@ export type TowerDefinition = { behaviour: string; sprite: string; description: string; + projectile: string; texture: PIXI.Texture; projectileTextures: PIXI.Texture[]; projectileTexturesArrayLength: number; @@ -123,4 +124,10 @@ export enum GemType { export enum TowerType { Basic = 0, Circle = 1, + Electric = 2, + Quick = 3, + Strong = 4, + Rail = 5, + Trapper = 6, + Advanced = 7, } diff --git a/src/classes/game/Tower.ts b/src/classes/game/Tower.ts index 265b4e3..b9f6d45 100644 --- a/src/classes/game/Tower.ts +++ b/src/classes/game/Tower.ts @@ -7,7 +7,16 @@ import { TowerBehaviours } from './TowerManager'; import Projectile, { calculateAngleToPoint } from './Projectile'; import Creep from './Creep'; import Gem from './Gem'; -import { BasicTowerBehaviour, CircleTowerBehaviour } from './TowerBehaviours'; +import { + AdvancedTowerBehaviour, + BasicTowerBehaviour, + CircleTowerBehaviour, + ElectricTowerBehaviour, + QuickTowerBehaviour, + RailTowerBehaviour, + StrongTowerBehaviour, + TrapperTowerBehaviour, +} from './TowerBehaviours'; export function distance(x1, y1, x2, y2) { return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); @@ -143,6 +152,12 @@ export class Tower extends GameObject { } if (this.behaviour == TowerBehaviours.BasicTowerBehaviour) BasicTowerBehaviour(this, elapsedMS); if (this.behaviour == TowerBehaviours.CircleTowerBehaviour) CircleTowerBehaviour(this, elapsedMS); + if (this.behaviour == TowerBehaviours.ElectricTowerBehaviour) ElectricTowerBehaviour(this, elapsedMS); + if (this.behaviour == TowerBehaviours.QuickTowerBehaviour) QuickTowerBehaviour(this, elapsedMS); + if (this.behaviour == TowerBehaviours.StrongTowerBehaviour) StrongTowerBehaviour(this, elapsedMS); + if (this.behaviour == TowerBehaviours.RailTowerBehaviour) RailTowerBehaviour(this, elapsedMS); + if (this.behaviour == TowerBehaviours.TrapperTowerBehaviour) TrapperTowerBehaviour(this, elapsedMS); + if (this.behaviour == TowerBehaviours.AdvancedTowerBehaviour) AdvancedTowerBehaviour(this, elapsedMS); } public destroy(): void { diff --git a/src/classes/game/TowerBehaviours.ts b/src/classes/game/TowerBehaviours.ts index 8867844..435739a 100644 --- a/src/classes/game/TowerBehaviours.ts +++ b/src/classes/game/TowerBehaviours.ts @@ -112,3 +112,111 @@ export function CircleTowerBehaviour(tower: Tower, elapsedMS: number) { } } } + +export function ElectricTowerBehaviour(tower: Tower, elapsedMS: number) { + computeGemImprovements(tower); + projectileCheck(tower, elapsedMS); + + if (tower.millisecondsUntilNextShot > 0) + tower.millisecondsUntilNextShot -= elapsedMS * Engine.GameScene.gameSpeedMultiplier; + let creepsInRange = tower.GetCreepsInRange(); + if (creepsInRange.length > 0) { + let focus = creepsInRange[0]; + if (tower.millisecondsUntilNextShot <= 0) { + let x = tower.column * Engine.GridCellSize + Engine.GridCellSize / 2; + let y = tower.row * Engine.GridCellSize + Engine.GridCellSize / 2; + tower.millisecondsUntilNextShot = tower.computedCooldown; + tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); + } + } +} + +export function QuickTowerBehaviour(tower: Tower, elapsedMS: number) { + computeGemImprovements(tower); + projectileCheck(tower, elapsedMS); + + if (tower.millisecondsUntilNextShot > 0) + tower.millisecondsUntilNextShot -= elapsedMS * Engine.GameScene.gameSpeedMultiplier; + let creepsInRange = tower.GetCreepsInRange(); + if (creepsInRange.length > 0) { + let focus = creepsInRange[0]; + if (tower.millisecondsUntilNextShot <= 0) { + let x = tower.column * Engine.GridCellSize + Engine.GridCellSize / 2; + let y = tower.row * Engine.GridCellSize + Engine.GridCellSize / 2; + tower.millisecondsUntilNextShot = tower.computedCooldown; + tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); + } + } +} + +export function StrongTowerBehaviour(tower: Tower, elapsedMS: number) { + computeGemImprovements(tower); + projectileCheck(tower, elapsedMS); + + if (tower.millisecondsUntilNextShot > 0) + tower.millisecondsUntilNextShot -= elapsedMS * Engine.GameScene.gameSpeedMultiplier; + let creepsInRange = tower.GetCreepsInRange(); + if (creepsInRange.length > 0) { + let focus = creepsInRange[0]; + if (tower.millisecondsUntilNextShot <= 0) { + let x = tower.column * Engine.GridCellSize + Engine.GridCellSize / 2; + let y = tower.row * Engine.GridCellSize + Engine.GridCellSize / 2; + tower.millisecondsUntilNextShot = tower.computedCooldown; + tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); + } + } +} + +export function RailTowerBehaviour(tower: Tower, elapsedMS: number) { + computeGemImprovements(tower); + projectileCheck(tower, elapsedMS); + + if (tower.millisecondsUntilNextShot > 0) + tower.millisecondsUntilNextShot -= elapsedMS * Engine.GameScene.gameSpeedMultiplier; + let creepsInRange = tower.GetCreepsInRange(); + if (creepsInRange.length > 0) { + let focus = creepsInRange[0]; + if (tower.millisecondsUntilNextShot <= 0) { + let x = tower.column * Engine.GridCellSize + Engine.GridCellSize / 2; + let y = tower.row * Engine.GridCellSize + Engine.GridCellSize / 2; + tower.millisecondsUntilNextShot = tower.computedCooldown; + tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); + } + } +} + +export function TrapperTowerBehaviour(tower: Tower, elapsedMS: number) { + computeGemImprovements(tower); + projectileCheck(tower, elapsedMS); + + if (tower.millisecondsUntilNextShot > 0) + tower.millisecondsUntilNextShot -= elapsedMS * Engine.GameScene.gameSpeedMultiplier; + let creepsInRange = tower.GetCreepsInRange(); + if (creepsInRange.length > 0) { + let focus = creepsInRange[0]; + if (tower.millisecondsUntilNextShot <= 0) { + let x = tower.column * Engine.GridCellSize + Engine.GridCellSize / 2; + let y = tower.row * Engine.GridCellSize + Engine.GridCellSize / 2; + tower.millisecondsUntilNextShot = tower.computedCooldown; + tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); + } + } +} + +export function AdvancedTowerBehaviour(tower: Tower, elapsedMS: number) { + computeGemImprovements(tower); + projectileCheck(tower, elapsedMS); + + if (tower.millisecondsUntilNextShot > 0) + tower.millisecondsUntilNextShot -= elapsedMS * Engine.GameScene.gameSpeedMultiplier; + let creepsInRange = tower.GetCreepsInRange(); + if (creepsInRange.length > 0) { + let focus = creepsInRange[0]; + if (tower.millisecondsUntilNextShot <= 0) { + let x = tower.column * Engine.GridCellSize + Engine.GridCellSize / 2; + let y = tower.row * Engine.GridCellSize + Engine.GridCellSize / 2; + tower.millisecondsUntilNextShot = tower.computedCooldown; + tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); + } + } +} diff --git a/src/classes/game/TowerManager.ts b/src/classes/game/TowerManager.ts index 922492a..daeb8aa 100644 --- a/src/classes/game/TowerManager.ts +++ b/src/classes/game/TowerManager.ts @@ -9,6 +9,12 @@ import { GridEvents, TowerEvents } from '../Events'; export enum TowerBehaviours { BasicTowerBehaviour = 'BasicTowerBehaviour', CircleTowerBehaviour = 'CircleTowerBehaviour', + ElectricTowerBehaviour = 'ElectricTowerBehaviour', + QuickTowerBehaviour = 'QuickTowerBehaviour', + StrongTowerBehaviour = 'StrongTowerBehaviour', + RailTowerBehaviour = 'RailTowerBehaviour', + TrapperTowerBehaviour = 'TrapperTowerBehaviour', + AdvancedTowerBehaviour = 'AdvancedTowerBehaviour', } export default class TowerManager { diff --git a/src/classes/gui/TowerTab.ts b/src/classes/gui/TowerTab.ts index fefd096..d0c7d03 100644 --- a/src/classes/gui/TowerTab.ts +++ b/src/classes/gui/TowerTab.ts @@ -122,10 +122,82 @@ export default class TowerTab extends GuiObject { 70, this.container, GameAssets.RedBackground, - 'Basic Tower', + GameAssets.Towers[0].name, GameAssets.Towers[0].texture ) ); + this.towerButtons.push( + new TowerButton( + 1, + 0, + 70, + 70, + this.container, + GameAssets.RedBackground, + GameAssets.Towers[1].name, + GameAssets.Towers[1].texture + ) + ); + this.towerButtons.push( + new TowerButton( + 2, + 0, + 70, + 70, + this.container, + GameAssets.BlueBackground, + GameAssets.Towers[2].name, + GameAssets.Towers[2].texture + ) + ); + this.towerButtons.push( + new TowerButton( + 3, + 0, + 70, + 70, + this.container, + GameAssets.BlueBackground, + GameAssets.Towers[3].name, + GameAssets.Towers[3].texture + ) + ); + this.towerButtons.push( + new TowerButton( + 0, + 1, + 70, + 70, + this.container, + GameAssets.GreenBackground, + GameAssets.Towers[4].name, + GameAssets.Towers[4].texture + ) + ); + this.towerButtons.push( + new TowerButton( + 1, + 1, + 70, + 70, + this.container, + GameAssets.GreenBackground, + GameAssets.Towers[5].name, + GameAssets.Towers[5].texture + ) + ); + this.towerButtons.push( + new TowerButton( + 2, + 1, + 70, + 70, + this.container, + GameAssets.YellowBackground, + GameAssets.Towers[6].name, + GameAssets.Towers[6].texture + ) + ); this.towerButtons.push( new TowerButton( 3, @@ -133,9 +205,9 @@ export default class TowerTab extends GuiObject { 70, 70, this.container, - GameAssets.GreenBackground, - 'Circle Tower', - GameAssets.Towers[1].texture + GameAssets.YellowBackground, + GameAssets.Towers[7].name, + GameAssets.Towers[7].texture ) ); } From f84108847b6ba6c337954a742f4dc1a38a2c925b Mon Sep 17 00:00:00 2001 From: koneko <67551503+koneko@users.noreply.github.com> Date: Sun, 16 Feb 2025 23:15:46 +0100 Subject: [PATCH 3/5] implement electric tower and buff tower --- public/assets/json/Towers.json | 12 +- public/assets/projectiles/lightning/0.png | Bin 0 -> 3050 bytes public/assets/projectiles/lightning/1.png | Bin 0 -> 3110 bytes public/assets/projectiles/lightning/2.png | Bin 0 -> 3077 bytes public/assets/projectiles/lightning/3.png | Bin 0 -> 3097 bytes .../{quick_tower.png => buff_tower.png} | Bin .../{advanced_tower.png => debuff_tower.png} | Bin public/assets/towers/electric_tower.png | Bin 7704 -> 7418 bytes src/classes/Assets.ts | 4 + src/classes/Bastion.ts | 5 +- src/classes/Definitions.ts | 4 +- src/classes/game/DebrisManager.ts | 41 +++++++ src/classes/game/Grid.ts | 48 ++++++-- src/classes/game/Projectile.ts | 49 +++++++- src/classes/game/Tower.ts | 28 +++-- src/classes/game/TowerBehaviours.ts | 113 ++++++++++++------ src/classes/game/TowerManager.ts | 8 +- src/main.ts | 4 +- 18 files changed, 241 insertions(+), 75 deletions(-) create mode 100644 public/assets/projectiles/lightning/0.png create mode 100644 public/assets/projectiles/lightning/1.png create mode 100644 public/assets/projectiles/lightning/2.png create mode 100644 public/assets/projectiles/lightning/3.png rename public/assets/towers/{quick_tower.png => buff_tower.png} (100%) rename public/assets/towers/{advanced_tower.png => debuff_tower.png} (100%) create mode 100644 src/classes/game/DebrisManager.ts diff --git a/public/assets/json/Towers.json b/public/assets/json/Towers.json index 82a558e..9e1d93c 100644 --- a/public/assets/json/Towers.json +++ b/public/assets/json/Towers.json @@ -57,9 +57,9 @@ } }, { - "name": "Quick Tower", - "behaviour": "QuickTowerBehaviour", - "sprite": "quick_tower", + "name": "Buff Tower", + "behaviour": "BuffTowerBehaviour", + "sprite": "buff_tower", "texture": null, "projectile": "blue", "projectileTextures": [], @@ -133,9 +133,9 @@ } }, { - "name": "Advanced Tower", - "behaviour": "AdvancedTowerBehaviour", - "sprite": "advanced_tower", + "name": "Debuff Tower", + "behaviour": "DebuffTowerBehaviour", + "sprite": "debuff_tower", "texture": null, "projectile": "red", "projectileTextures": [], diff --git a/public/assets/projectiles/lightning/0.png b/public/assets/projectiles/lightning/0.png new file mode 100644 index 0000000000000000000000000000000000000000..5dcca961aa08cf50a820a0bedff1a05d242a43f0 GIT binary patch literal 3050 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 literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/lightning/1.png b/public/assets/projectiles/lightning/1.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e06a2edb07f1e73c50ceb00ab69c80d5e7f2e2 GIT binary patch literal 3110 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 AC;$Ke literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/lightning/2.png b/public/assets/projectiles/lightning/2.png new file mode 100644 index 0000000000000000000000000000000000000000..b43f8de9857819dea1f1b990bd952a8fb89286d2 GIT binary patch literal 3077 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 T8V+of00000NkvXXu0mjfTIdGV literal 0 HcmV?d00001 diff --git a/public/assets/projectiles/lightning/3.png b/public/assets/projectiles/lightning/3.png new file mode 100644 index 0000000000000000000000000000000000000000..4a1e18a6ce0c0f3b811832094baead6a30d0176b GIT binary patch literal 3097 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 literal 0 HcmV?d00001 diff --git a/public/assets/towers/quick_tower.png b/public/assets/towers/buff_tower.png similarity index 100% rename from public/assets/towers/quick_tower.png rename to public/assets/towers/buff_tower.png diff --git a/public/assets/towers/advanced_tower.png b/public/assets/towers/debuff_tower.png similarity index 100% rename from public/assets/towers/advanced_tower.png rename to public/assets/towers/debuff_tower.png diff --git a/public/assets/towers/electric_tower.png b/public/assets/towers/electric_tower.png index fb788c7e17fac5136ecc2f6146776ddf9fa2fca0..072dec40754b41ee475dcba32065aa2dad7ccdb0 100644 GIT binary patch literal 7418 zcmV~0#x4ymmz1Q8Z7fIb(t<91wSzcseAqpFC2)HOP z#U!Z-0fy96D!@S1WXuG^Oqi)*iVDmOHGcpFF=VI+yy7@v^=@Ms$+E0nYO7mnsn_?q z`|ZE&-udI#t9q3zIXP8b)$eZS-0$z)bI(2J{(gdgC8X37Nor0CjVPL)o~{rzlwZd) ziX_qnA@=+4v~1#?W;m0SIuOO716^+?P|;;|(nJA2xGZ81T)M&HP0_yyNJ>3p;O5t% z=)C4ZbWy_#y59+~v>VOfN>b`ThWg09s{-io!`tSR1uBZBZB_0gyOnyzxSldzN$)5~ zs(PRUN861MS2w9sPkv*;I;k@Fg*{3=k$k)IEky4aNUD0E15Mj{O`RhRM>+ZA+6C(a z6{YUpcB6oLM?g}gM_aB5px&2r9DaBk!l;lxy=Kw2LKyh|EjME6-O#lR6FXQvxOwS4 zqGIBm>_Uz z>=TMS^5@loUq4>0p30{IqMO=Ic6@s8@6Zy%SnqpoK>_XTZ?4B#@0v78l^$&&qBat! zC~_W6329-UCD#j<_7c;a5d(GEwK9c{Z zbFIxE-FX^enc!!E7J|s|s2JsZFa%rFQ8^nQney-8k0mw_$9v zk@+J28x=(JTWG6yA~HJ(4t+1=K@y?u!l6yoe(Ix(0*-b`BtJ5AHFJimSZ=C%paUT` zF8fF!#IAYEWj#XgBku#Cy;Ctd*iP!x9n{Zg6pw%9gY5lB)JXpf8Tyg(@+|(>a4=rhgq8E?R+Q{m?x2g3sM!ql zW@P_`T&%;yfQ7$CMUpc>W^fzbQWaVVF zHZTl&b^6Z&qA@Tf=nk0Rj$8m$pEiQ-i9zZQKRqu%$9}e%fn(`8<&zYMB#yU7)eo#& zO58<3x*-6ms6(c`sEL4<53DwRcF@%#J1KSS&bQdLSxcL&LVe;0%*7>Cq*zCpDO$H|9UUZcp8ncZ1|wd>Tfk5 z`@QIzOa1QU)>WDvpVDq~!lHOJusa&6c4wx_h2AWqMT0f#E+Xqyw5Gv%`DfSmbNtFS+E?8>S+AcfwuScaM|K>o>g)IbM;yBeX|XVs0I-bvf4OT-dIa%r7b zeSrFpP9ld|tXz|o`9Q}|@s;zhzf-}ntu}qS$Zv~#8{5gAfi>RwxX0or5`mgSr1(5l^PV~+; z^mUz3cTrvh>Iq~m1!xF0!Ba^@tRE2#5SDH>#cB~q+|eIW%~C-h{b(=`?BUW5k;8%Ii*Re^k@r#Twd;L z5+L{Y`yeo9l^ZQd2sBDxJcb%u4MrR};iYTRLR53ed=wEWBVyxdE#n9gHB!O`BB=2Q zqOpX~4D2W>*$5C5{$&kSvJiFwG#3DCe>?TZiUea_5EdcaG%6@UwH;-TBJ}BPQVy@j zd&a`tzjWksMoemYx!I}{xm<)QCf=bva{!WV3iq`n)(2t)r>bF@Uqd$&3O&xd-%|#W zP(sUs)DfPICP3JL1RNujFX9}EyGi6Zoz zH?AE*1yz*S1YQ$LDTmTk`qZm5 zePTamV;oht5ToazH3p_V!ABv20w@pkPS83L<}T1TgNT95I~4zJ5a*duZ0X2~tB*Y0 zooV^l?w2op|CQ~*ST(uoOZWZ?W9M^A+9-`7VSV)VP?PF<3u3{L$29f6oa5A!-{7q7 z($LsXYkMynx1N~SnkX@A_Y>*ot;XRsVw`Nj7>20(ChH^%Cx7oD%91ty{Z%Kh0blLbqX`-^>?JA5l| zb#J9O*2dnuf2mp;*D1~JKwE8Vv9ExLFFuAdjQjj&$REFq)t*JOO{%9ZVm4)H`8OY* zB_*l^W0&C<--7%89YiGv3lje`)SN|l^#0XN*lQYT`q`e z`O7WX@7sj2t&RGV7ce%S##oudxcecr_K(BxuaL!Q_d)125vF~#-OB>W{l&gO1a~Pt zdIz3k>8D;poH+sM4)}xf;0(j@{}=+b@hgzrJpVY(Fr5A}STWEPDpv$81IFgi2y1O& zyXyZ%`NseqR2>n-K;DPcx1#lab$Yz)ez0a(i=YDe--dDkZ2WH!+k*06L-{Wu)j5pF ze*y2!!KM zAh-;;lwJ!M_~8%HqM-}W`PDlpzWOxTowqDUY@kB<&-iEEf;9DKQ{nbbtt`Zit6j#r0!TrP<3f|PlD>PpO9XeL5nQ&Y^>En zkepNG|LF;Ge>68hsQhEZx3zLSrmzM!r`3V+dnFe!fKMC*K70@}W7Dwr_aOTzce|vv zEiL$j_@L=HL$!s|5z0riE}&&&w0&v^5P;uJ^B?^U!$0{y6yH2U;-)xutA!q!K86N$ zi8J6*>#b4ksgbxj6Z%%dL|vgVO4vYfPoUL)tjp-UOKy3I01@n&{NGyH#EQTEIPS#} zyzV2Uc4vS`ush-m{rUoCS`qD9#DAG2J%U#(Q+R0*vnjGrBftj{MxbZeS?VT zM1r@qfl_(;3704K7hQ)$GC{oQL8_Hu?D)S&*A=SxMbdX?$p7=$9C^(MXa+bFW2A0t zCUJ8H@!Dy`>!%6cb3e3%2YjW^1k9g%cd( zbJc$Z^-%zvf$1llUmyuBbe-6ym0;?4%?-%BgJ(r?9KqiS*&mR~ zY$lU7aVi%vZ`*)f)o`Al9ZHI(A-xiM4?^RBuH9nsp&)1 zE*e5SP*C-sE!f6jJw8V!22CJj8KJE}w>}4Q4AJnNuwm^VNbNXF@x`V20;nJ$sFX?W z-$t|{Lge%j&<)D%TS=|VF;=WFK3>MJ9z=OnQmHt_!U-(RBw`!5UVy%5J$g?8kxQWl zi%6;PViG$sPS;;;!_3X_{!=l6Klmu3_W}S?Pou=lAjWKs2S67!AwFCRHAz<`0)a`dubxAc9a4X`9mnyg zl&jPLr~CIXaeX2Kjsh-n9;GQwJys zLc`N73PzTu+9f>AW<<+SsR|rdV_>k6TuT_$s8(y#$9?oCj}WwFN!`|gZJ8wEQLM2M z7%w1ogG%=pBec`e>Y`f_WMut>6dHlq!OWnnz(n)b0LN!f-jco3Ah}urQ_h=0a%y#= z&Mj#6B_v}6x`A+}4ULR$q^D;PEf^=2iej1u`H?cXKK7s7LC`%+FjfV}$6XP{)-MqG zNVCS8y!jw50fwgMZt`>r@h053%VGwi@OHmNwf!Y*E zBKeUaRr{&G&}E3q=pd=q+i-aXg@-g+(ENdk$Dp%rb30C@2|1Rh@DIO(;UXj>h?XQq zOA_gadBngl@Q)7@9Ur2e31dcXZ46H)a3`X#bv<++@}p3%D-sj)sXIDnx*NG^ZJk71 zAotz^j*pZYj;m1`b0}I_y7f+y(X})+r`a9xNo7O3qlAq#+vWhI(}m6kio-9EY@Fe+ znZ~Ipyk;P`;4O=>f%6C&vDlBmMCuJFyt3$ zNsWd8SF0L>g9hbNbynM2U1NA;?(+(y;L_zZ!^0^Yce>tleWVO+Sj14o8a0wR6#^to zq|r)XbB&b5NxnHMRhIa#t7N1J!a`A&_|OJ_-UtjA(M9tR1G(A5*c z_*A?4nM-6J*h_NHP1H+e>g6)!@haJ&bEF4DYaIxaA+wo_mvrLxL}0X9#Ecr~h8fzR z0Sj0-)n6({DU8`Teub8-#MG)}Tbs~~4z^^X1Z&z+T8uzT%mHS4;u|p7febtfmu6hO z)I|*=Gk04+osjp%Hc1&$0nG<|k9tTyf!7P|d5M`J|ffpf}zB)!xv{#vm>G!-@ppVAJ{ zcOdmkNc9#xcexr8+KvXQIt|t$9)2CVX)^vyP28SsgLYi?0#gv_XI)U(XwXy6j-5v z9cZEh^mifkVI)IHa~QemB?7YpWiIEcK?sykCSrkmW>R=e2GBGb5fi{@G$WXsjF5rH z_&^VZzR*ZlMh9tV+d#b}76k|v07;1bzEV#dr0(7}U%l_taH?VW^zzBy5lv-DcdVZU zRw#V)l!0XbyRoRCs3IAffMPl~I9WDL3ME`XM^lLzZ%^0=kwPbmAU-|*0we>EN@0+Z z-jm26Gy_V(=;a|A+HXgxrL#l}YKjmaE~(O^Z-Te;%DT$v?ATPTn5S0E6HR4FHg%Ak zNG{G9bK)Gh)WqiL2)Lk}>6G{qBCuZ=9wnkHge z4k2i>C+Sp+)Qbg5!+lelE`7z&g?@UEon!N!J7%>XA2`1(&P&FVR_^+fbB7-L-z1x3 zXqpJscS4hDqXRUq*huqDcTmmuQ5_v1aO=pxqcq${X}Ax7Xex^pOA<|Gv16&J-EsLO zKx<@5gML+d2|0UDS&s)QclH#Svr>?mm+mHd81& zmO?X3tXLA=nAS8amYUK$->FisR0%vAgidXIgurugYbD(3{MWCG`2u}sx~IU&wzYEm z2k*tS<}T6kfgYl%Fed-P&z{_O%^*olYdm}C4LUZgMJdQ%>_^iTnl`=uDkFW=iz6gk zx`?J*iKN09g;xG}P_um3tgFP2{G5-|X_uWONEjQIhDX11kXjr+Oa=t=# z?OkYwNo{NhuR4YlEz~N*ltz~4n=C2QgzdR>rki5EFlC#%wr(PsO;al`d@K3v;Ws#Y zXvS?o!MDHq__GTxw`IS|_4WJq>_F!km_7`x*szxMJGT=}PTQT_mUl6D`~?8wO)H3H zS70X^u@bZ2g{hAXQ5zq^ua_w;;jaw#T%=YmPZ;RIS+>ZuEHdpmvTdz&Y*>qFS)4um z2GK-fj!o)2)6Ln#Z(M21e)#2|zx>I?_+QoQrSky=Ay{2oH<8L_uo7w9^5~qtD|Wq~ zeD`5$V^{r7-h%Y>cOPc&M?N@f8A7;}W@`BY-~c@C>DDI~(;~QrcW}Rc-<};9`~by{ zE9+9(3@bLQCD*xfmUaPT*Y2d6@4K!bz53KI=XDYxG|D~4PBPeYacXJKB!T$WgFk=i z3(MhiO)n~c_5OD^n$rC|iiZ|zlgehuwB=~+T17IOCYnm48P>d7cC9p1V``-``Tju) z{R0aEGeJF4X`lS-r(S$^xqRN%+uZ;C{yVy4pgjcq=~8V|*$mNSoK!YLDwCPBZ7-LK z`2xP{QOp;ncC*RFH!|~YP{>A;{10#|b8MCB@~ literal 7704 zcmV+z9_QhSP)-EbLbd(q_HkbvTVt=EG&y! z+rV;Fv_QdbYS{&rtt7<}NQK}8OtNfMNKwH_sQiH`9793vvWid4Vpw0Sge@Ui_bqEA zjWlQX%=G;`U;gNxo@r^0){UK4)m575-|zR{`@HY{-uxu^18LIQ9tC1R5QtCvssxmQ zERYfAHuq+aP26HIL7)rhtioxeWq^yq+;-tz4M|$tHDD>Q_!=Hl0#4rySjsH`lmNC| z5um+Kt(oDsL14ACwr{9He|JEV*7h!718`-NI{NH)=J+-NY^vI{cQ&Ldpw(A(bD-$} zN1yANS z%lzted+WCK#}TFu`Vze13~HM-OWLwhTHE`Dxh-?kAXU|B^}OC{O5J8|elA(D9N{d7 z4lZHMXNm-)CWF6#H%trY+K4K!>!pyVb<_f-tuY-!OHns@C!=0DITW4=M%dd-@RoIu}XChB}FT zwu|x!h3o+^QxIDVMtkM@!Z8@%3w{|Ee9R%Z7`*->e*Zc2%}a3)9YR}EaSndpFOcbh zX}t{q7q2xj)*1w~x?0k>4pzQwGTfK&2hOF6=`Ev1TgVe7P)1%y4eQ{(4VkyAOQ?b# zgRluc6c4XUc&32|VoJkmt&$S_uV989zFQEjAO z!cOPN9U2AIbWoZDAOxs$d#ww5SFr!5%NrO`Pj#MGu5QxWzWf>i6@k#@kb-4mZ8(X45@0Q7hj{y*hnjeKNhb2<~RT2kFX}F6zeo1tf z?%OZW*_}aJNpNDgC)!Y&%3jfkmERtXC_&wA-m-Ma9WUuZSAA{ZOsn48Qk|sY5=v%R z-ZFqJ82Gss%D=u3ys7c#jxI%Ynuxay(boK1Vx<_6zk-?cNNam$dH|};5J@Ml2#zf1 zSg&tF7Fws-9TW4B<+ywIf;#1fBeCq%HO3gy3xIEcny?24sjLu*XAx!|S=R9fo58g(KfV-1k@8PZ)vH=6!`i#|fm6UavI+NOqa~K3dk&pFrwFwSAj~{|I*fNF39bcNp<=l1TyR-XEPW50!eu2E>-Dt_ z&Ma89%k`2}m7?Gk0kU^(0bj2VD%zspDdfI#2!Ct|LJxze^rQF&qL9KL4I%=0L}&t~ zZ2}>JT1=Qg067srH0KbCh8aM{ngK$>y`Ug-2ExpMVpkSqYbWKWv-soPU|0LM<9J>c zS?oj@W1vmBNq=}5*2@OwdmE`-)@oAI)ot+=shG28(`A699mClj#e9DV_h_;5JGX?; zBT}eg9(->eL_`WD3BHPOOcVjatfYF<#U06@#$>A!4nWyPs%jEHk5qgRF#r$g6@{Pk zg)D-*%L5q&Dv@(<&oI(0BJCEW-Gb1vi12w39zgN%k@cZfnvMCu{zjxpnA`dy%|1Q7y1W0C#Q z5Z0?>7@p-7Y&HGMw-aq2zkBD!C*D}=ju)egzWVU5(eHe%0UI?e%x!OJ(`rAB?Oq&x z_B)(VZJL?~NOhiN#p)B2fTYl3sLd@R_=z~`iu%I6(uz=8p?M|Z)ZZYR`f$n)>1X!h zTQ1R!y%hGJA+l~2M(ctKL{}hAy$(B1Lvt(s=8qr(P6d$CiU@qZ0;;Z`gh}&P7SZ3< z<)#0A@ca+oh`SS(Sw54ATSNKKqJR6))0I%=&<3=g7w4IATdfKpt?hR<466LgEu4Dm zZqA%qO?IM#%@4dJ+u}>5VsxP_F_q9aK!oRhhBboy`sYX=zKGG8L@{-W$Ihd-Bxw88 zC#Kg_Dz&BYi}0)O!3X{df<6cXBLA%-Idk-J_G`Ce-quXZ$5xMBc>K5V=Jzbw)pY;z z1GQ`Pl{?W^UYuvfyC)?n(Xg?Wg;sic&vNF}YT3EimhByzL52`vl;BtA2LxcYl08!- z(3Yh6p{12%J}C*^-hp(FPgCI>NC$E50EFX^AA~>)guhq;lsgJ)2ttcz?4#|0y9jo- z;fLM$!mmFJ(pw?ntWeiz$gGVw*i{EfUDks?GK3tT9#P%?ZA5G z9QummC<{_(@A)Q5$0v}ZzeZ*Y)9X*7y6v-}QC0I5|9)Q$+>2uy>apF36GtH41%G@7 ztPwc;?<=5|e*>Z`XH^A`KMF<&6p2h_K}mqNvSNglj%tehzme`CKm}Pwcp>mVfUmAb zIs4eO;BhM$)2xM8fb`3iaR4m;TL`T}y1S9?4t#kEE%2YgIk*@7t~4U@5OU%f+&w?J zM2Y}1;!5`Deft+*_tjucL=<-f90yTYi&*$gIQk_h^;JbTTp4_5$*96H`vVR7Z8jzdL zk=uC;fT5>$p(jk5Hvb;{0rID9Vr!BOu5cC<6>GRO`*wtMQH*ma$q*f%Syz!>_cX14 z`ZtXH?0=Cxc!J37Va#>|H87QidSxGL(57^@M6s_#rowh}s$`tVH(6L25$MCm80 z3=UoWMu2cP)$-ScEiCv?pTIspigS7&u?-1eJ7!my;oqD?k4u8xp$2S404JL#vttOo zB{17XfD0mwhA3=63g=q8=Kvl3x{vp*1 z{$z&R$F%BxRL|^El<%38B7|O95x`gwCzz;)S29oh;m_dv{ha^tlbG!$p~V4|fJ&&_ ztap%uHhx)B>K{S`s~f!SP2}=ZE1a+T7gdEwG(x!L>l6zknBjkgs!C+`E5sj2kp9Q< z%f_n*K+(XeJ|niVmB<|l#O~vWw~phz_oL8ON${mQ9hkdj76hdRB*_a;CoigyglI=J zeGXZ897Gg-(SHH?ClwDrIJLs*SvH}CsuEhU5Ofu%wFy6M;TS#g7tcRDJd9-_(C|l3!1ld(E8Cz3?*-0fEdi6oH>R! z2}y}HWEV7HZp%n(`|Mgl4=($w4~-!FJVIH3YJ3s=aYWPitGxe?*t(Ns|GB|Jg6H8C z@(e9XuM-CtXSo|+c@$3l32{3nRB=PKch8b^xh9?hIliiEi>Hz`TE+4k-Q z5d>i*1$;G%;(MsZ7m@w}Wa0ZLq5lX7WZ`j~wix>RZpZn@<1>P3Uja@T(r2omS`D0q z%{U(9I(uooc!Kii2%`Z5$MpetYmZH9YYtVdNU-k(5W>JXb&Twrrx1CI*k7*2vK$Ke zA|=2&{d)|%ShEr!kxCdDP9ayPKqQ$F^)n(mJJ*0?Rre6h!%_% zszF9e(o(vBqnL~;2?|AlWh)F0HIr(qR5gml66FaO^|^g`9Z6yvyD$x%NH~ZwJ_-{V zd{v`xdYn-@>1wx8jR1aNS*;lB>0Nb2S%HplZUb@I9_QIhA?Y&~VwKuRCa zE1_y(#`8M1xtMII14l8zgMlH1hzYK%a{gj7skW)e)a&i0xZw^wQ(%pN=N4FYd>0ut z4hwo2b4`w)(izS~SbyK5%9c3_p0TLTt5qPZqBuTIG=51sVs0zdAPIBZaP{QHjE1~0 zHbks_BQ~!faqzV^6nC(;U%zx^Csv^ae>_d*@7{osEJOo{wkTR#6yL4vBYK*Kdw7K4 z#4zPVrDkN8#&P@zcD4FiRx9B{dJM{CNu)ZTvZZq3bTha2l!=4|{^mQua`Aly%T~yZ zTV#zSr`5$ogFUpg#@P^Xi6!-#)A99=%K)i#qtZ)uU+m_@%@So3uuy1vqCf_D}aQKueIYD-7^Bx*+_1rAE#88 z*PfkzkV3me|7KJ<*D5h~;Uw{{Wf*M5VHciO3H5|GF%<)yxIpsbn~83^opLTuIiDv# zQ6xEhiull(YKo&XthaLhf=bw|bYCuJ(SsVQrdMpxpiv1TXKA^7kj%J=+n5?%!QMe9?h9~b5fYwO48bXVYdDMO#ev& z(ImlG0)vNfIgG1;f`a0W0nqW4kJhdaM56?vQJOozFO6W8ikw;a0Cw4BY^;cDyLDbS zn;k{fJ1FD~e1Gm^Q^BxKGG=0gleBk5NVHeZiz%6QT)@|7Kf)jgqq7l($}ZUG*`v5t z2~`tRSLUrtj}Tre)2D&dY_@6e#2yyju^G(_qOl593&kf{?0>li@|Ra1y3LzkpXHj;{} z`H8vVOpf_dEtzhIW;(A_2cs%YXJ<=Oe9ytLN@!-VZdIhR3ePx+@9jtN24;q3*XLN# zm|3wGY7@R1r>$ll6%=VS7LelA0L^~3s2P>sIyk=Pps4kwky6&p%y#f#}_t= z)S3IVqC^UJRxk=}sB|M}u8-ADDpuP7lG&6{llH!Dm=lEA#PkM{W-=xi&+ojJQ z!Sfv2Zd+S}RT*Fxis%CMJ^1PfKEwF>2>zlSczPF7Z)DG*0!m07G0QnKUpTb_nnE+8 z3Pzz7L3lBFM(|@uS)--kWQqGAv0nG|YnA==wZQliKoXy)=#Y*|~;?Xw<#*)Ol zmes+k48FByAldpL1_dNV{7STs&&V_^!!t;V4X7wGf~XZxO@xS{5=0Q5dj4#VO zh|#l0@ja(j_#C@9OjGAQNIC!6+F2zvF+I|pNKT~j7uX<@p*)+jel4wg8(dy>n zOvba3iOp~$V1u-#w#4Tv6j~+52hWfjxln`S`x2+*ns>Y+QBs7-6xC9e{$qq&77*)LN~Eoua(0w*b`&c+ito8~>NtH+W+;ZD=@_9Xsx~EQMkrR3 zJl85xE)?+`6NE}>VieD@u}eAZ;>^ddv*`@|Cr;PkBs%Av!AZs9;Afy`2iGFq9{}PR~YT5oE;_F)=e)l4}Ujj-ar4J_!L`v7h!o2Kv3 zQSxKs*R-Xy&#`R|ytae89@?D;OcQ2FtU{6h`|A#@opboFWiw!3Z~_2O{+` zWuY<{r<6zfF23hd811ivcOQ6d2Wz(6UzHLcr|hE{3VJ|6GZX?%Ej7uS zoVXr{AXJTLsvFNPQ><11rUL`;9EoFjxRzgoQ#-NHks{HNBAd>T?5O=~<1n_@=Z}wO9e9e~oYXfp^AJ_H~0*shONQMX{ zmtYr0amzWJa%Hu(Km@xmj$If>%8J+VTp!<)GlH3^#gd6Sa0g!7fn(dGx))YUCN`Oi zLk$7S3=Fa7rB@~ajRQ|!E2QrMe-3mH^_}OR(=V`g%l#xeQgv!l%#6~sa4q?Cfn?A9 zD4I@bd>E%VjxX9M6-LO7+FXw|X?rf5I88R4soAFP)hmc56Ay@#R0zXc%NvVc%>0cNBbBT`=* zEsqaVni$3{=gG|zuMG8_r}1;J?MtP$-VmtMk1Hlr2Z49 zIk|WLrMB$JN1xyM7xTul*8*x1R`==^#F7b&NE|yqcGeawRmBjbO9uL)>BOPUsp(P zzVOnFLE@xQ?mKjpp}zAq)x6Y%Jo^03FE^YOT?MFS;7ha& z&6rWjuC`5=m{KlJdSHmmz~Ee90Q#!Z^Xe6)j#t~h{h>|WRZyR9#4`n>VPeSyu|(oB zx7}#VrZc#QVb}H5KvGD`y3a(=VEf=@9VdB#y96tQv50gG~ zf_%QfxihB;GkYTIA}FF^Sr)c0nQ(jxuB6~fMy#p(e(>_H@7;)b-0=4&)h6n?WGx5N zG|5Vh_kH#Y031AckQcuG^?C32Jdc6l32sHZsqb_fAD@cZe(-}IaPZ(ko_OMkhVHd2 zi(A!hnj}q5a%^mjcs$N?&ppR;&pp@By}s|0&1P>I#G58bV`F3ZzE7c0U}$Iv$8j14 zG%_-R>$-DZGd4E%&WGeU&i96ghjCpO$8i`M8e(j0j8dsoI}viJ4a#P-3=R&?3Dk96 zhKGl79Oub*yt)D3avbNufq{W_(P)%NBtoH3pirpPeiTJP*Y$=~$8}xu`87`e z$8O}A(o!g?&3Og;&G+HssepO~2Ft{af1p{i<~+Rb2(`l{8^C)4S4-@C@UT>`2P zcno+fnM`&A4+7l_I};yC#3Snl2d1{ahcecy)#P-470#-#`A-t4m5}XzSh)!Q?G&&9@rTzH7MG0PX`mxntL{nO<@BSHL!)_g2xpE|Bhe z@4p+r%3G7br>MM-GCI$74^}_#?%ZuAzBF=(lI56zg} zYDwBd?M*BVwG&+aO2l`)B&C6$R&7#u)%MKP`hY{X0?>7bldLYJ5gpX%bL_?ZN8erEe6Z z&MOS;daJ6l=LSNmlboOY{p&k-?>%+=@WJzQ-DBQJNxIAn?bvnfg)^u6>AP6j(HI#k zr02WmI=6$UFINS0%j2ADZT}CSU3tW8 S1L%JM0000= 0; idx--) { + const db = this.debris[idx]; + if (this.ticks >= db.ticksToDestroyAt) { + db.destroy(); + this.debris.splice(idx, 1); + } else { + db.update(elapsedMS); + } + } + } + public CreateDebris(affectedObject: Container | GameObject, ticksToDestroyAt?: number) { + if (!ticksToDestroyAt) ticksToDestroyAt = 120; + this.debris.push(new Debris(affectedObject, this.ticks + ticksToDestroyAt)); + } +} diff --git a/src/classes/game/Grid.ts b/src/classes/game/Grid.ts index ccd3e95..af0635d 100644 --- a/src/classes/game/Grid.ts +++ b/src/classes/game/Grid.ts @@ -1,10 +1,11 @@ import * as PIXI from 'pixi.js'; import GameObject from '../GameObject'; -import { GameMapDefinition, TerrainType } from '../Definitions'; +import { GameMapDefinition, TerrainType, TowerType } from '../Definitions'; import GameAssets from '../Assets'; import { Engine } from '../Bastion'; import Creep from './Creep'; import { CreepEvents, TowerEvents, GridEvents } from '../Events'; +import { distance, Tower } from './Tower'; let genPath = []; @@ -15,6 +16,7 @@ export class Cell extends GameObject { public isPath: boolean = false; public g: PIXI.Graphics; public hasTowerPlaced: boolean = false; + public isBuffedBy: Tower[] = []; public clickDetector: PIXI.Graphics; constructor(type: TerrainType, row: number, column: number, isPath: boolean) { @@ -55,19 +57,32 @@ export class Cell extends GameObject { this.clickDetector.on('pointerleave', (e) => { if (!Engine.Grid.gridInteractionEnabled || Engine.GameScene.towerPanel.isShown) return; Engine.GameScene.events.emit(GridEvents.CellMouseLeave, this); - Engine.Grid.rangePreview.clear(); }); - Engine.GameScene.events.on(TowerEvents.TowerPlacedEvent, (_, row, col) => { + Engine.GameScene.events.on(TowerEvents.TowerPlacedEvent, (towerName, row, col) => { if (row == this.row && col == this.column) { this.hasTowerPlaced = true; Engine.Grid.rangePreview.clear(); + } else if (towerName == GameAssets.Towers[TowerType.Buff].name) { + let twr = Engine.TowerManager.GetTowerByRowAndCol(row, col); + if (Engine.Grid.IsCellInRangeOfOtherCell(row, col, twr.computedRange, this)) { + this.isBuffedBy.push(twr); + } } }); - Engine.GameScene.events.on(TowerEvents.TowerSoldEvent, (_, row, col) => { + Engine.GameScene.events.on(TowerEvents.TowerSoldEvent, (towerName, row, col) => { + console.log(towerName, row, col); if (row == this.row && col == this.column) { this.hasTowerPlaced = false; Engine.Grid.rangePreview.clear(); + } else if (towerName == GameAssets.Towers[TowerType.Buff].name) { + console.log('TRIpped!'); + let twr = Engine.TowerManager.GetTowerByRowAndCol(row, col); + if (Engine.Grid.IsCellInRangeOfOtherCell(row, col, twr.computedRange, this)) { + console.log('REMOVED!'); + this.isBuffedBy.splice(this.isBuffedBy.indexOf(twr), 1); + console.log(this.isBuffedBy); + } } }); @@ -118,10 +133,12 @@ export class Cell extends GameObject { this.row * Engine.GridCellSize + Engine.GridCellSize / 2 }y` ); - Engine.Grid.rangePreview.circle( - this.column * Engine.GridCellSize + Engine.GridCellSize / 2, - this.row * Engine.GridCellSize + Engine.GridCellSize / 2, - range * Engine.GridCellSize + console.log( + Engine.Grid.rangePreview.circle( + this.column * Engine.GridCellSize + Engine.GridCellSize / 2, + this.row * Engine.GridCellSize + Engine.GridCellSize / 2, + range * Engine.GridCellSize + ) ); Engine.Grid.rangePreview.fill({ color: color, alpha: 0.3 }); } @@ -187,6 +204,10 @@ export class Grid extends GameObject { } this.rangePreview = new PIXI.Graphics({ zIndex: 10, + x: 0, + y: 0, + width: Engine.app.canvas.width, + height: Engine.app.canvas.height, }); this.container.addChild(this.rangePreview); } @@ -216,6 +237,17 @@ export class Grid extends GameObject { console.log(JSON.stringify(newGrid)); } + + public IsCellInRangeOfOtherCell(row, col, range, otherCell) { + range = range * Engine.GridCellSize; + const x = otherCell.column * Engine.GridCellSize + Engine.GridCellSize / 2; + const y = otherCell.row * Engine.GridCellSize + Engine.GridCellSize / 2; + const cellX = col * Engine.GridCellSize + Engine.GridCellSize / 2; + const cellY = row * Engine.GridCellSize + Engine.GridCellSize / 2; + const d = distance(cellX, cellY, x, y); + if (d < range + Engine.GridCellSize / 2) return true; + else return false; + } public toggleGrid(force?: 'hide' | 'show') { this.cells.forEach((cell) => { if (force) { diff --git a/src/classes/game/Projectile.ts b/src/classes/game/Projectile.ts index 210d257..e8f5cd8 100644 --- a/src/classes/game/Projectile.ts +++ b/src/classes/game/Projectile.ts @@ -3,8 +3,9 @@ import GameObject from '../GameObject'; import { Engine } from '../Bastion'; import Creep from './Creep'; import { CreepEvents } from '../Events'; -import { Tower } from './Tower'; +import { distance, Tower } from './Tower'; import { CreepResistancesDefinition } from '../Definitions'; +import GameAssets from '../Assets'; export function calculateAngleToPoint(x, y, targetX, targetY) { const dx = targetX - x; @@ -55,6 +56,7 @@ export default class Projectile extends GameObject { this.angle = angle; this.speed = 0.9; } + public destroy(): void { super.destroy(); this.deleteMe = true; @@ -72,7 +74,7 @@ export default class Projectile extends GameObject { if (!exists) { this.collidedCreepIDs.push(creep); this.pierce--; - this.onCollide(creep); + this.onCollide(creep, this); return; } } @@ -84,14 +86,14 @@ export default class Projectile extends GameObject { this.container.y = this.y; } - public onCollide(creep) { + public onCollide(creep, proj) { /* Note: Right now it is possible for the bullet to 'overshoot' the creep if the bullet speed is too fast and the position is updated so that the new position is beyond the creep (i.e. the bullet is never 'in the creep'). This should be fixed so that we calculate the hit if the creep is in a line from the previous position to the new position. */ - Engine.GameScene.events.emit(CreepEvents.TakenDamage, creep.id, this.damage, this.gemResistanceModifications); + Engine.GameScene.events.emit(CreepEvents.TakenDamage, creep.id, proj.damage, proj.gemResistanceModifications); } public checkCollision(creep: Creep) { @@ -102,3 +104,42 @@ export default class Projectile extends GameObject { return mybb.getBounds().intersects(otherbb.getBounds()); } } + +export class VisualLightning extends GameObject { + public deleteMe: boolean = false; + private c: Creep; + private oc: Creep; + private Lightning: PIXI.AnimatedSprite; + constructor(creep: Creep, otherCreep: Creep) { + super(); + this.c = creep; + this.oc = otherCreep; + let lightningAngle = calculateAngleToPoint(creep.x, creep.y, otherCreep.x, otherCreep.y); + this.Lightning = new PIXI.AnimatedSprite({ + textures: GameAssets.SpecialLightning, + x: creep.x, + y: creep.y, + width: distance(this.c.x, this.c.y, this.oc.x, this.oc.y), + height: 64, + scale: 1.2, + rotation: lightningAngle, + }); + this.Lightning.anchor.set(0, 0.5); + this.Lightning.play(); + Engine.GameMaster.currentScene.stage.addChild(this.Lightning); + Engine.DebrisManager.CreateDebris(this, 30); + } + public destroy(): void { + this.deleteMe = true; + this.container.destroy(); + this.Lightning.destroy(); + } + public update() { + if (this.deleteMe) { + return; + } + this.Lightning.x = this.c.x; + this.Lightning.y = this.c.y; + this.Lightning.width = distance(this.c.x, this.c.y, this.oc.x, this.oc.y); + } +} diff --git a/src/classes/game/Tower.ts b/src/classes/game/Tower.ts index b9f6d45..ae6384c 100644 --- a/src/classes/game/Tower.ts +++ b/src/classes/game/Tower.ts @@ -8,11 +8,11 @@ import Projectile, { calculateAngleToPoint } from './Projectile'; import Creep from './Creep'; import Gem from './Gem'; import { - AdvancedTowerBehaviour, + DebuffTowerBehaviour, BasicTowerBehaviour, CircleTowerBehaviour, ElectricTowerBehaviour, - QuickTowerBehaviour, + BuffTowerBehaviour, RailTowerBehaviour, StrongTowerBehaviour, TrapperTowerBehaviour, @@ -35,12 +35,18 @@ export class Tower extends GameObject { public sprite: PIXI.Sprite; public millisecondsUntilNextShot: number; public graphics: PIXI.Graphics = new PIXI.Graphics(); - public computedDamageToDeal: number; - public computedCooldown: number; - public computedRange: number; - public computedTimeToLive: number; - public computedPierce: number; - public totalGemResistanceModifications: CreepResistancesDefinition; + public computedDamageToDeal: number = 0; + public computedCooldown: number = 0; + public computedRange: number = 0; + public computedTimeToLive: number = 0; + public computedPierce: number = 0; + public totalGemResistanceModifications: CreepResistancesDefinition = { + fire: 0, + frostfire: 0, + divine: 0, + ice: 0, + physical: 0, + }; public parent: Cell; constructor(row, column, texture, definition, behaviour) { @@ -59,6 +65,7 @@ export class Tower extends GameObject { }); this.container.addChild(this.sprite); this.computedDamageToDeal = this.definition.stats.damage; + this.computedRange = this.definition.stats.range; this.parent.container.addChild(this.container); this.container.interactiveChildren = true; this.parent.clickDetector.on('pointerenter', this.onParentCellEnter); @@ -113,6 +120,7 @@ export class Tower extends GameObject { return d < radius + (Engine.GridCellSize * 2) / 3; }); } + public Shoot(angle) { let x = this.column * Engine.GridCellSize + Engine.GridCellSize / 2; let y = this.row * Engine.GridCellSize + Engine.GridCellSize / 2; @@ -153,11 +161,11 @@ export class Tower extends GameObject { if (this.behaviour == TowerBehaviours.BasicTowerBehaviour) BasicTowerBehaviour(this, elapsedMS); if (this.behaviour == TowerBehaviours.CircleTowerBehaviour) CircleTowerBehaviour(this, elapsedMS); if (this.behaviour == TowerBehaviours.ElectricTowerBehaviour) ElectricTowerBehaviour(this, elapsedMS); - if (this.behaviour == TowerBehaviours.QuickTowerBehaviour) QuickTowerBehaviour(this, elapsedMS); + if (this.behaviour == TowerBehaviours.BuffTowerBehaviour) BuffTowerBehaviour(this, elapsedMS); if (this.behaviour == TowerBehaviours.StrongTowerBehaviour) StrongTowerBehaviour(this, elapsedMS); if (this.behaviour == TowerBehaviours.RailTowerBehaviour) RailTowerBehaviour(this, elapsedMS); if (this.behaviour == TowerBehaviours.TrapperTowerBehaviour) TrapperTowerBehaviour(this, elapsedMS); - if (this.behaviour == TowerBehaviours.AdvancedTowerBehaviour) AdvancedTowerBehaviour(this, elapsedMS); + if (this.behaviour == TowerBehaviours.DebuffTowerBehaviour) DebuffTowerBehaviour(this, elapsedMS); } public destroy(): void { diff --git a/src/classes/game/TowerBehaviours.ts b/src/classes/game/TowerBehaviours.ts index 435739a..63fa894 100644 --- a/src/classes/game/TowerBehaviours.ts +++ b/src/classes/game/TowerBehaviours.ts @@ -1,6 +1,11 @@ +import GameAssets from '../Assets'; import { Engine } from '../Bastion'; -import { calculateAngleToPoint } from './Projectile'; -import { Tower } from './Tower'; +import { TowerType } from '../Definitions'; +import { CreepEvents } from '../Events'; +import Creep from './Creep'; +import Projectile, { calculateAngleToPoint, VisualLightning } from './Projectile'; +import { distance, Tower } from './Tower'; +import * as PIXI from 'pixi.js'; /** * Checks the projectiles of the tower and updates or removes them based on their state. @@ -44,34 +49,47 @@ export function computeGemImprovements(tower: Tower) { physical: 0, }; tower.slottedGems.forEach((gem) => { - let ccurrentGemImprovements = gem.currentGemImprovement(); - gemDamage += ccurrentGemImprovements.damageUp; - gemAttackSpeedUp += ccurrentGemImprovements.attackSpeedUp; - gemRangeUp += ccurrentGemImprovements.rangeUp; - gemTimeToLiveUp += ccurrentGemImprovements.timeToLiveUp; - gemPierceUp += ccurrentGemImprovements.pierceUp; + let improvements = gem.currentGemImprovement(); + gemDamage += improvements.damageUp; + gemAttackSpeedUp += improvements.attackSpeedUp; + gemRangeUp += improvements.rangeUp; + gemTimeToLiveUp += improvements.timeToLiveUp; + gemPierceUp += improvements.pierceUp; - let gemResMod = gem.currentGemResistanceModifications(); - tower.totalGemResistanceModifications.physical += gemResMod.physical; - tower.totalGemResistanceModifications.ice += gemResMod.ice; - tower.totalGemResistanceModifications.fire += gemResMod.fire; - tower.totalGemResistanceModifications.divine += gemResMod.divine; - tower.totalGemResistanceModifications.frostfire += gemResMod.frostfire; + let resistances = gem.currentGemResistanceModifications(); + tower.totalGemResistanceModifications.physical += resistances.physical; + tower.totalGemResistanceModifications.ice += resistances.ice; + tower.totalGemResistanceModifications.fire += resistances.fire; + tower.totalGemResistanceModifications.divine += resistances.divine; + tower.totalGemResistanceModifications.frostfire += resistances.frostfire; }); + tower.computedDamageToDeal = tower.definition.stats.damage + gemDamage; tower.computedCooldown = tower.definition.stats.cooldown - gemAttackSpeedUp; tower.computedRange = tower.definition.stats.range + gemRangeUp; tower.computedTimeToLive = tower.definition.stats.timeToLive + gemTimeToLiveUp; tower.computedPierce = tower.definition.stats.pierce + gemPierceUp; + + // Buff tower + if (tower.parent.isBuffedBy.length > 0 && tower.definition.name != GameAssets.Towers[TowerType.Buff].name) { + let buffedBy = tower.parent.isBuffedBy[0]; + tower.computedDamageToDeal += Math.ceil(buffedBy.computedDamageToDeal / 3); + tower.computedCooldown -= Math.ceil(buffedBy.computedCooldown / 5); + tower.computedRange += Math.ceil(buffedBy.computedRange / 10); + tower.computedTimeToLive += Math.ceil(buffedBy.computedTimeToLive / 5); + tower.computedPierce += Math.ceil(buffedBy.computedPierce / 4); + + tower.totalGemResistanceModifications.physical += + (buffedBy.totalGemResistanceModifications.physical * 100) / 2 / 100; + tower.totalGemResistanceModifications.ice += (buffedBy.totalGemResistanceModifications.ice * 100) / 2 / 100; + tower.totalGemResistanceModifications.fire += (buffedBy.totalGemResistanceModifications.fire * 100) / 2 / 100; + tower.totalGemResistanceModifications.divine += + (buffedBy.totalGemResistanceModifications.divine * 100) / 2 / 100; + tower.totalGemResistanceModifications.frostfire += + (buffedBy.totalGemResistanceModifications.frostfire * 100) / 2 / 100; + } } -/** - * Defines the basic behavior of a tower, including computing damage, checking projectiles, - * and handling shooting at creeps within range. - * - * @param tower - The tower whose behavior is being defined. - * @param elapsedMS - The elapsed time in milliseconds since the last update. - */ export function BasicTowerBehaviour(tower: Tower, elapsedMS: number) { computeGemImprovements(tower); projectileCheck(tower, elapsedMS); @@ -96,7 +114,6 @@ export function CircleTowerBehaviour(tower: Tower, elapsedMS: number) { tower.millisecondsUntilNextShot -= elapsedMS * Engine.GameScene.gameSpeedMultiplier; let creepsInRange = tower.GetCreepsInRange(); if (creepsInRange.length > 0) { - let focus = creepsInRange[0]; if (tower.millisecondsUntilNextShot <= 0) { tower.millisecondsUntilNextShot = tower.computedCooldown; let x = tower.column * Engine.GridCellSize + Engine.GridCellSize / 2; @@ -119,34 +136,52 @@ export function ElectricTowerBehaviour(tower: Tower, elapsedMS: number) { if (tower.millisecondsUntilNextShot > 0) tower.millisecondsUntilNextShot -= elapsedMS * Engine.GameScene.gameSpeedMultiplier; + let creepsInRange = tower.GetCreepsInRange(); + if (creepsInRange.length > 0) { let focus = creepsInRange[0]; if (tower.millisecondsUntilNextShot <= 0) { let x = tower.column * Engine.GridCellSize + Engine.GridCellSize / 2; let y = tower.row * Engine.GridCellSize + Engine.GridCellSize / 2; tower.millisecondsUntilNextShot = tower.computedCooldown; - tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); + let proj = tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); + proj.onCollide = (creep: Creep, proj: Projectile) => { + proj.pierce = 0; + let nearByCreeps = Engine.Grid.creeps.filter((nCreep) => { + if (nCreep.id != creep.id) { + const x = nCreep.x; + const y = nCreep.y; + const radius = 3.5 * Engine.GridCellSize; + const d = distance(creep.x, creep.y, x, y); + return d < radius; + } + }); + nearByCreeps.forEach((nearCreep) => { + new VisualLightning(creep, nearCreep); + Engine.GameScene.events.emit( + CreepEvents.TakenDamage, + nearCreep.id, + proj.damage / 2, + proj.gemResistanceModifications + ); + }); + Engine.GameScene.events.emit( + CreepEvents.TakenDamage, + creep.id, + proj.damage, + proj.gemResistanceModifications + ); + }; } } } -export function QuickTowerBehaviour(tower: Tower, elapsedMS: number) { +export function BuffTowerBehaviour(tower: Tower, elapsedMS: number) { computeGemImprovements(tower); - projectileCheck(tower, elapsedMS); - - if (tower.millisecondsUntilNextShot > 0) - tower.millisecondsUntilNextShot -= elapsedMS * Engine.GameScene.gameSpeedMultiplier; - let creepsInRange = tower.GetCreepsInRange(); - if (creepsInRange.length > 0) { - let focus = creepsInRange[0]; - if (tower.millisecondsUntilNextShot <= 0) { - let x = tower.column * Engine.GridCellSize + Engine.GridCellSize / 2; - let y = tower.row * Engine.GridCellSize + Engine.GridCellSize / 2; - tower.millisecondsUntilNextShot = tower.computedCooldown; - tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); - } - } + // Buff tower does not do anything and doesn't have a behaviour. + // For how its implemented, Cell tracks when it's placed and removed (via event) + // and tower takes improvements via computeGemImprovements() } export function StrongTowerBehaviour(tower: Tower, elapsedMS: number) { @@ -203,7 +238,7 @@ export function TrapperTowerBehaviour(tower: Tower, elapsedMS: number) { } } -export function AdvancedTowerBehaviour(tower: Tower, elapsedMS: number) { +export function DebuffTowerBehaviour(tower: Tower, elapsedMS: number) { computeGemImprovements(tower); projectileCheck(tower, elapsedMS); diff --git a/src/classes/game/TowerManager.ts b/src/classes/game/TowerManager.ts index daeb8aa..3936eec 100644 --- a/src/classes/game/TowerManager.ts +++ b/src/classes/game/TowerManager.ts @@ -2,7 +2,7 @@ import * as PIXI from 'pixi.js'; import { Engine } from '../Bastion'; import { TerrainType, TowerDefinition } from '../Definitions'; import GameAssets from '../Assets'; -import { Tower } from './Tower'; +import { distance, Tower } from './Tower'; import { Cell } from './Grid'; import { GridEvents, TowerEvents } from '../Events'; @@ -10,11 +10,11 @@ export enum TowerBehaviours { BasicTowerBehaviour = 'BasicTowerBehaviour', CircleTowerBehaviour = 'CircleTowerBehaviour', ElectricTowerBehaviour = 'ElectricTowerBehaviour', - QuickTowerBehaviour = 'QuickTowerBehaviour', + BuffTowerBehaviour = 'BuffTowerBehaviour', StrongTowerBehaviour = 'StrongTowerBehaviour', RailTowerBehaviour = 'RailTowerBehaviour', TrapperTowerBehaviour = 'TrapperTowerBehaviour', - AdvancedTowerBehaviour = 'AdvancedTowerBehaviour', + DebuffTowerBehaviour = 'DebuffTowerBehaviour', } export default class TowerManager { @@ -127,10 +127,10 @@ export default class TowerManager { while (twr.slottedGems.length > 0) { twr.UnslotGem(0); } + Engine.GameScene.events.emit(TowerEvents.TowerSoldEvent, twr.definition.name, twr.row, twr.column); Engine.GameScene.MissionStats.earnGold(twr.definition.stats.cost); twr.destroy(); this.towers.splice(idx, 1); - Engine.GameScene.events.emit(TowerEvents.TowerSoldEvent, twr.name, twr.row, twr.column); } else twr.update(elapsedMS); }); } diff --git a/src/main.ts b/src/main.ts index 3543950..49ca147 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,7 +7,7 @@ import { AnimationManager } from './classes/game/AnimationManager'; import NotificationManager from './classes/game/NotificationManager'; import GameUIConstants from './classes/GameUIConstants'; import KeyboardManager from './classes/game/KeyboardManager'; -import { GemType } from './classes/Definitions'; +import DebrisManager from './classes/game/DebrisManager'; (async () => { const app = new PIXI.Application(); @@ -54,10 +54,12 @@ import { GemType } from './classes/Definitions'; new GameMaster(); Engine.AnimationManager = new AnimationManager(); Engine.NotificationManager = new NotificationManager(); + Engine.DebrisManager = new DebrisManager(); globalThis.Engine = Engine; PIXI.Ticker.shared.add((ticker) => { Engine.NotificationManager.update(ticker.elapsedMS); Engine.AnimationManager.update(ticker.elapsedMS); + Engine.DebrisManager.update(ticker.elapsedMS); }); app.canvas.addEventListener('pointermove', function (event) { Engine.MouseX = ((event.clientX - app.canvas.offsetLeft) / app.canvas.offsetWidth) * 1920; From 9d998a45e18d5abdf375d1337ebcbf5e351b5e3d Mon Sep 17 00:00:00 2001 From: koneko <67551503+koneko@users.noreply.github.com> Date: Mon, 17 Feb 2025 11:49:44 +0100 Subject: [PATCH 4/5] electric tower chains properly --- public/assets/json/Gems.json | 8 ++-- public/assets/json/Towers.json | 44 ++++++++--------- public/assets/missions/02_the_turn.json | 35 ++++++++++++-- src/classes/game/Grid.ts | 54 ++------------------- src/classes/game/Projectile.ts | 2 +- src/classes/game/Tower.ts | 9 ++-- src/classes/game/TowerBehaviours.ts | 63 ++++++++++++------------- src/classes/game/TowerManager.ts | 4 +- src/main.ts | 4 +- 9 files changed, 98 insertions(+), 125 deletions(-) diff --git a/public/assets/json/Gems.json b/public/assets/json/Gems.json index 4a96e43..c50e244 100644 --- a/public/assets/json/Gems.json +++ b/public/assets/json/Gems.json @@ -8,7 +8,7 @@ "textures": [], "cantCombineWith": [], "specialCombine": [], - "initialGemValue": 10, + "initialGemValue": 100, "genericImprovements": [ { "damageUp": 2, @@ -16,7 +16,7 @@ "rangeUp": 0, "timeToLiveUp": 0, "pierceUp": 1, - "gemValueUp": 0 + "gemValueUp": 50 }, { "damageUp": 2, @@ -24,14 +24,14 @@ "rangeUp": 0, "timeToLiveUp": 0, "pierceUp": 1, - "gemValueUp": 10 + "gemValueUp": 100 } ], "gemResistanceModifications": [ { "physical": 0, "divine": 0, - "fire": 0.25, + "fire": 0.1, "ice": 0, "frostfire": 0 }, diff --git a/public/assets/json/Towers.json b/public/assets/json/Towers.json index 9e1d93c..9b34a7c 100644 --- a/public/assets/json/Towers.json +++ b/public/assets/json/Towers.json @@ -10,12 +10,12 @@ "description": "The building block of society, nothing more basic exists.", "stats": { "damage": 2, - "cooldown": 2000, - "gemSlotsAmount": 2, - "cost": 100, - "range": 4, + "cooldown": 1500, + "gemSlotsAmount": 1, + "cost": 50, + "range": 3, "timeToLive": 20, - "pierce": 1 + "pierce": 2 } }, { @@ -28,10 +28,10 @@ "projectileTexturesArrayLength": 4, "description": "If you feel a little circular.", "stats": { - "damage": 2, - "cooldown": 2000, - "gemSlotsAmount": 3, - "cost": 125, + "damage": 3, + "cooldown": 4000, + "gemSlotsAmount": 2, + "cost": 100, "range": 2.5, "timeToLive": 12, "pierce": 30 @@ -45,15 +45,15 @@ "projectile": "yellow", "projectileTextures": [], "projectileTexturesArrayLength": 4, - "description": "Think of something", + "description": "Zap zap zap!", "stats": { - "damage": 2, - "cooldown": 2000, - "gemSlotsAmount": 3, - "cost": 125, - "range": 2.5, + "damage": 3, + "cooldown": 3500, + "gemSlotsAmount": 2, + "cost": 150, + "range": 3, "timeToLive": 12, - "pierce": 30 + "pierce": 10 } }, { @@ -66,13 +66,13 @@ "projectileTexturesArrayLength": 4, "description": "", "stats": { - "damage": 2, - "cooldown": 2000, + "damage": 4, + "cooldown": 1000, "gemSlotsAmount": 3, - "cost": 125, - "range": 2.5, - "timeToLive": 12, - "pierce": 30 + "cost": 200, + "range": 2, + "timeToLive": 15, + "pierce": 5 } }, { diff --git a/public/assets/missions/02_the_turn.json b/public/assets/missions/02_the_turn.json index 1cb273f..e404c94 100644 --- a/public/assets/missions/02_the_turn.json +++ b/public/assets/missions/02_the_turn.json @@ -98,8 +98,8 @@ "waves": [ { "firstCreepSpawnTick": 500, - "spawnIntervalTicks": 1000, - "creeps": [0, 0, 0, 0, 0] + "spawnIntervalTicks": 500, + "creeps": [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 2] } ], "offeredGems": [0, 0, 0, 0] @@ -109,10 +109,35 @@ { "firstCreepSpawnTick": 500, "spawnIntervalTicks": 1000, - "creeps": [1, 1, 1, 1, 1] + "creeps": [0, 0, 1, 1, 1, 4, 5, 5, 5, 1, 1, 0, 0] } ], - "offeredGems": [0, 1, 2, 3] + "offeredGems": [1, 1, 1, 0] + }, + { + "waves": [ + { + "firstCreepSpawnTick": 500, + "spawnIntervalTicks": 1000, + "creeps": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + { + "firstCreepSpawnTick": 500, + "spawnIntervalTicks": 500, + "creeps": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + } + ], + "offeredGems": [0, 2, 2, 3] + }, + { + "waves": [ + { + "firstCreepSpawnTick": 500, + "spawnIntervalTicks": 100, + "creeps": [1, 1, 1, 1, 1, 1, 1, 1, 1] + } + ], + "offeredGems": [0, 2, 2, 3] }, { "waves": [ @@ -122,7 +147,7 @@ "creeps": [2, 2, 2, 2, 2] } ], - "offeredGems": [0, 1, 2, 3] + "offeredGems": [0, 1, 3, 3] } ] } diff --git a/src/classes/game/Grid.ts b/src/classes/game/Grid.ts index af0635d..0ce25ef 100644 --- a/src/classes/game/Grid.ts +++ b/src/classes/game/Grid.ts @@ -76,7 +76,6 @@ export class Cell extends GameObject { this.hasTowerPlaced = false; Engine.Grid.rangePreview.clear(); } else if (towerName == GameAssets.Towers[TowerType.Buff].name) { - console.log('TRIpped!'); let twr = Engine.TowerManager.GetTowerByRowAndCol(row, col); if (Engine.Grid.IsCellInRangeOfOtherCell(row, col, twr.computedRange, this)) { console.log('REMOVED!'); @@ -86,59 +85,16 @@ export class Cell extends GameObject { } }); - // Disable this if you want to add new maps. - if (true) return; - - const text = new PIXI.Text({ - text: `${this.column}|${this.row}`, - style: new PIXI.TextStyle({ - fill: 0xffffff, - fontSize: 16, - stroke: { - color: 0x000000, - width: 2, - }, - }), - }); - this.container.addChild(text); - text.anchor.set(0.5, 0.5); - text.x = this.bb.width / 2; - text.y = this.bb.height / 2; - if (this.type == TerrainType.Path) { - text.style.fill = 'green'; - text.style.fontWeight = 'bold'; - } - if (this.type == TerrainType.Restricted) { - text.style.fill = 'gold'; - } - this.clickDetector.on('pointerup', () => { - const cellIndex = genPath.findIndex(([col, row]) => col === this.column && row === this.row); - if (cellIndex !== -1) { - text.style.fill = 0xffffff; - genPath.splice(cellIndex, 1); - } else { - text.style.fill = 0xff0000; - genPath.push([this.column, this.row]); - } - console.log('updated gen path'); - console.log(JSON.stringify(genPath)); - }); + // See commit f84108847b6ba6c337954a742f4dc1a38a2c925b } public showRangePreview(invalid, range) { let color = 0xffffff; if (invalid) color = 0xff0000; Engine.Grid.rangePreview.clear(); - console.log( - `Showing range preview ${this.column * Engine.GridCellSize + Engine.GridCellSize / 2}x - ${ - this.row * Engine.GridCellSize + Engine.GridCellSize / 2 - }y` - ); - console.log( - Engine.Grid.rangePreview.circle( - this.column * Engine.GridCellSize + Engine.GridCellSize / 2, - this.row * Engine.GridCellSize + Engine.GridCellSize / 2, - range * Engine.GridCellSize - ) + Engine.Grid.rangePreview.circle( + this.column * Engine.GridCellSize + Engine.GridCellSize / 2, + this.row * Engine.GridCellSize + Engine.GridCellSize / 2, + range * Engine.GridCellSize ); Engine.Grid.rangePreview.fill({ color: color, alpha: 0.3 }); } diff --git a/src/classes/game/Projectile.ts b/src/classes/game/Projectile.ts index e8f5cd8..6ebf97d 100644 --- a/src/classes/game/Projectile.ts +++ b/src/classes/game/Projectile.ts @@ -49,7 +49,7 @@ export default class Projectile extends GameObject { this.sprite.play(); this.container.x = this.x; this.container.y = this.y; - this.sprite.tint = tint; + // this.sprite.tint = tint; this.container.addChild(this.sprite); Engine.GameMaster.currentScene.stage.addChild(this.container); diff --git a/src/classes/game/Tower.ts b/src/classes/game/Tower.ts index ae6384c..3443383 100644 --- a/src/classes/game/Tower.ts +++ b/src/classes/game/Tower.ts @@ -1,11 +1,10 @@ import { Engine } from '../Bastion'; import * as PIXI from 'pixi.js'; import GameObject from '../GameObject'; -import { CreepResistancesDefinition, GemType, TowerDefinition } from '../Definitions'; +import { CreepResistancesDefinition, TowerDefinition } from '../Definitions'; import { Cell } from './Grid'; import { TowerBehaviours } from './TowerManager'; -import Projectile, { calculateAngleToPoint } from './Projectile'; -import Creep from './Creep'; +import Projectile from './Projectile'; import Gem from './Gem'; import { DebuffTowerBehaviour, @@ -145,13 +144,13 @@ export class Tower extends GameObject { this.totalGemResistanceModifications ); const time = new Date().toISOString(); - console.log(`${time} ${this.definition.name} shot at ${angle} degrees`); + // console.log(`${time} ${this.definition.name} shot at ${angle} degrees`); this.projectiles.push(proj); return proj; } public Sell() { - this.setAsSold = true; // Selling logic is handled in TowerManager.update() + this.setAsSold = true; } public update(elapsedMS: any): void { if (this.sold) return; diff --git a/src/classes/game/TowerBehaviours.ts b/src/classes/game/TowerBehaviours.ts index 63fa894..396d299 100644 --- a/src/classes/game/TowerBehaviours.ts +++ b/src/classes/game/TowerBehaviours.ts @@ -73,11 +73,11 @@ export function computeGemImprovements(tower: Tower) { // Buff tower if (tower.parent.isBuffedBy.length > 0 && tower.definition.name != GameAssets.Towers[TowerType.Buff].name) { let buffedBy = tower.parent.isBuffedBy[0]; - tower.computedDamageToDeal += Math.ceil(buffedBy.computedDamageToDeal / 3); - tower.computedCooldown -= Math.ceil(buffedBy.computedCooldown / 5); - tower.computedRange += Math.ceil(buffedBy.computedRange / 10); - tower.computedTimeToLive += Math.ceil(buffedBy.computedTimeToLive / 5); - tower.computedPierce += Math.ceil(buffedBy.computedPierce / 4); + tower.computedDamageToDeal += Number((buffedBy.computedDamageToDeal / 2).toFixed(1)); + tower.computedCooldown -= (buffedBy.computedCooldown * 100) / 5 / 100; + tower.computedRange += Number((buffedBy.computedRange / 10).toFixed(1)); + tower.computedTimeToLive += (buffedBy.computedTimeToLive * 100) / 5 / 100; + tower.computedPierce += (buffedBy.computedPierce * 100) / 4 / 100; tower.totalGemResistanceModifications.physical += (buffedBy.totalGemResistanceModifications.physical * 100) / 2 / 100; @@ -147,25 +147,32 @@ export function ElectricTowerBehaviour(tower: Tower, elapsedMS: number) { tower.millisecondsUntilNextShot = tower.computedCooldown; let proj = tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); proj.onCollide = (creep: Creep, proj: Projectile) => { + let chainedCreepIds = []; proj.pierce = 0; - let nearByCreeps = Engine.Grid.creeps.filter((nCreep) => { - if (nCreep.id != creep.id) { - const x = nCreep.x; - const y = nCreep.y; - const radius = 3.5 * Engine.GridCellSize; - const d = distance(creep.x, creep.y, x, y); - return d < radius; - } - }); - nearByCreeps.forEach((nearCreep) => { - new VisualLightning(creep, nearCreep); - Engine.GameScene.events.emit( - CreepEvents.TakenDamage, - nearCreep.id, - proj.damage / 2, - proj.gemResistanceModifications - ); - }); + function checkNearBy(c) { + let nearByCreeps = Engine.Grid.creeps.filter((nCreep) => { + if (nCreep.id != creep.id) { + const x = nCreep.x; + const y = nCreep.y; + const radius = 1.5 * Engine.GridCellSize; + const d = distance(c.x, c.y, x, y); + return d < radius; + } + }); + nearByCreeps.forEach((nearCreep) => { + if (!chainedCreepIds.find((crID) => crID == nearCreep.id)) chainedCreepIds.push(nearCreep.id); + else return; + checkNearBy(nearCreep); + new VisualLightning(c, nearCreep); + Engine.GameScene.events.emit( + CreepEvents.TakenDamage, + nearCreep.id, + Math.round(proj.damage / 2), + proj.gemResistanceModifications + ); + }); + } + checkNearBy(creep); Engine.GameScene.events.emit( CreepEvents.TakenDamage, creep.id, @@ -226,16 +233,6 @@ export function TrapperTowerBehaviour(tower: Tower, elapsedMS: number) { if (tower.millisecondsUntilNextShot > 0) tower.millisecondsUntilNextShot -= elapsedMS * Engine.GameScene.gameSpeedMultiplier; - let creepsInRange = tower.GetCreepsInRange(); - if (creepsInRange.length > 0) { - let focus = creepsInRange[0]; - if (tower.millisecondsUntilNextShot <= 0) { - let x = tower.column * Engine.GridCellSize + Engine.GridCellSize / 2; - let y = tower.row * Engine.GridCellSize + Engine.GridCellSize / 2; - tower.millisecondsUntilNextShot = tower.computedCooldown; - tower.Shoot(calculateAngleToPoint(x, y, focus.x, focus.y)); - } - } } export function DebuffTowerBehaviour(tower: Tower, elapsedMS: number) { diff --git a/src/classes/game/TowerManager.ts b/src/classes/game/TowerManager.ts index 3936eec..8f5cc6f 100644 --- a/src/classes/game/TowerManager.ts +++ b/src/classes/game/TowerManager.ts @@ -2,7 +2,7 @@ import * as PIXI from 'pixi.js'; import { Engine } from '../Bastion'; import { TerrainType, TowerDefinition } from '../Definitions'; import GameAssets from '../Assets'; -import { distance, Tower } from './Tower'; +import { Tower } from './Tower'; import { Cell } from './Grid'; import { GridEvents, TowerEvents } from '../Events'; @@ -93,7 +93,6 @@ export default class TowerManager { this.towers.forEach((tower) => { if (tower.row == row && tower.column == col) returnTower = tower; }); - // console.log(returnTower, row, col); return returnTower; } public PlaceTower(definition: TowerDefinition, row, column, behaviour: string, ignoreCost?) { @@ -117,7 +116,6 @@ export default class TowerManager { 'Can not place tower on path or other tower, choose another spot.', 'warn' ); - console.warn('Can not place tower on occupied spot or path. Try again.'); } } public update(elapsedMS) { diff --git a/src/main.ts b/src/main.ts index 49ca147..13f012f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -44,7 +44,7 @@ import DebrisManager from './classes/game/DebrisManager'; app.canvas.style.marginBottom = `0`; app.canvas.style.display = 'block'; } - Engine.latestCommit = await fetch('/latest_commit').then((res) => res.text()); + Engine.latestCommit = await fetch('./latest_commit').then((res) => res.text()); window.addEventListener('resize', resize); resize(); @@ -78,14 +78,12 @@ import DebrisManager from './classes/game/DebrisManager'; let gamePausedDueToBlur = false; window.addEventListener('blur', () => { - console.log('blur'); if (Engine.GameScene && !Engine.GameScene.isPaused) { Engine.GameScene.PauseGame(); gamePausedDueToBlur = true; } }); window.addEventListener('focus', () => { - console.log('focus'); if (Engine.GameScene && gamePausedDueToBlur && Engine.GameScene.isPaused) { gamePausedDueToBlur = false; Engine.GameScene.UnpauseGame(); From abde1a6519bfe6ebaeb29abbbdcd84da20c3b9d0 Mon Sep 17 00:00:00 2001 From: koneko <67551503+koneko@users.noreply.github.com> Date: Mon, 17 Feb 2025 23:38:53 +0100 Subject: [PATCH 5/5] slightly more balanced --- public/assets/gems/Fire/3.png | Bin 0 -> 6394 bytes public/assets/gems/Fire/4.png | Bin 0 -> 6870 bytes public/assets/gems/Fire/5.png | Bin 0 -> 6477 bytes public/assets/gems/Fire/6.png | Bin 0 -> 9076 bytes public/assets/gems/Fire/7.png | Bin 0 -> 6158 bytes public/assets/gems/Fire/8.png | Bin 0 -> 5907 bytes public/assets/gems/Fire/9.png | Bin 0 -> 8259 bytes public/assets/json/Gems.json | 30 +++++++++++++++--------------- 8 files changed, 15 insertions(+), 15 deletions(-) create mode 100644 public/assets/gems/Fire/3.png create mode 100644 public/assets/gems/Fire/4.png create mode 100644 public/assets/gems/Fire/5.png create mode 100644 public/assets/gems/Fire/6.png create mode 100644 public/assets/gems/Fire/7.png create mode 100644 public/assets/gems/Fire/8.png create mode 100644 public/assets/gems/Fire/9.png diff --git a/public/assets/gems/Fire/3.png b/public/assets/gems/Fire/3.png new file mode 100644 index 0000000000000000000000000000000000000000..4736ff3d59ed490a2b0431de7ea2520fe4d16d88 GIT binary patch literal 6394 zcmV004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 literal 0 HcmV?d00001 diff --git a/public/assets/gems/Fire/5.png b/public/assets/gems/Fire/5.png new file mode 100644 index 0000000000000000000000000000000000000000..f40d840401cf83811ba95fc4742511bfb199e733 GIT binary patch literal 6477 zcmV-T8M5YyP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 literal 0 HcmV?d00001 diff --git a/public/assets/gems/Fire/6.png b/public/assets/gems/Fire/6.png new file mode 100644 index 0000000000000000000000000000000000000000..ad0e01be76c0b1dc404f6f9d2c31e7df758d76b7 GIT binary patch literal 9076 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 B5~BbB literal 0 HcmV?d00001 diff --git a/public/assets/json/Gems.json b/public/assets/json/Gems.json index c50e244..1407ee7 100644 --- a/public/assets/json/Gems.json +++ b/public/assets/json/Gems.json @@ -77,14 +77,14 @@ "physical": 0, "divine": 0, "fire": 0, - "ice": 0, + "ice": 0.1, "frostfire": 0 }, { "physical": 0, "divine": 0, "fire": 0, - "ice": 0, + "ice": 0.2, "frostfire": 0 } ] @@ -127,21 +127,21 @@ ], "gemResistanceModifications": [ { - "physical": 0, + "physical": 0.1, "divine": 0, "fire": 0, "ice": 0, "frostfire": 0 }, { - "physical": 0, + "physical": 0.1, "divine": 0, "fire": 0, "ice": 0, "frostfire": 0 }, { - "physical": 0, + "physical": 0.25, "divine": 0, "fire": 0, "ice": 0, @@ -179,18 +179,18 @@ ], "gemResistanceModifications": [ { - "physical": 0, - "divine": 0, - "fire": 0, - "ice": 0, - "frostfire": 0 + "physical": 0.05, + "divine": 0.05, + "fire": 0.05, + "ice": 0.05, + "frostfire": 0.05 }, { - "physical": 0, - "divine": 0, - "fire": 0, - "ice": 0, - "frostfire": 0 + "physical": 0.05, + "divine": 0.05, + "fire": 0.05, + "ice": 0.05, + "frostfire": 0.05 } ] }