Compare commits

...

No commits in common. "1cfb69af0a0a5c188661b1ba5fe60d8d4940c7e2" and "dc6549bdf11ef0fce9635cfa4bc4237e8620e6e7" have entirely different histories.

4 changed files with 88 additions and 67 deletions

View File

@ -1,57 +1,82 @@
name: Deploy Project BC name: Deploy Project BC
on: on:
push: # Запускать при событии push push: # Запускать при событии push
branches: branches:
- main # Только для ветки main (или master, или ваша основная ветка) - main # Только для ветки main (или master, или ваша основная ветка)
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest # Указываем метку раннера, на котором должна выполняться задача. runs-on: ubuntu-latest # Указываем метку раннера, на котором должна выполняться задача.
# Убедитесь, что ваш зарегистрированный раннер имеет эту метку. # Убедитесь, что ваш зарегистрированный раннер имеет эту метку.
# Можно использовать и более специфичную, например, 'self-hosted' или имя вашего сервера, если вы так его пометили. # Можно использовать и более специфичную, например, 'self-hosted' или имя вашего сервера, если вы так его пометили.
steps: steps:
- name: Checkout repository - name: Network Diagnostics Inside Container FIRST
uses: actions/checkout@v3 # Стандартное действие для скачивания кода репозитория на раннер run: |
echo "===== Running Network Diagnostics ====="
- name: Setup Node.js # Если вам нужно определенная версия Node.js для npm install echo "--- /etc/resolv.conf inside container ---"
uses: actions/setup-node@v3 cat /etc/resolv.conf
with: echo "--- nslookup google.com ---"
node-version: '18' # Укажите нужную вам LTS или другую версию Node.js nslookup google.com || echo "nslookup google.com failed or nslookup not available"
echo "--- nslookup Gitea Host (pavel-chagovsky.com) ---"
- name: Install Dependencies nslookup pavel-chagovsky.com || echo "nslookup pavel-chagovsky.com failed or nslookup not available"
run: | # Выполняем команды в рабочей директории раннера (куда был склонирован репозиторий) echo "--- Trying to curl Gitea by IP (81.177.140.16) and path /gitea/ ---"
echo "Current directory: $(pwd)" curl -kvL --connect-timeout 5 https://81.177.140.16/gitea/ || echo "Curl to Gitea by IP failed"
if [ -f package.json ]; then echo "===== Network Diagnostics Finished ====="
echo "package.json found. Installing dependencies..." - name: Network Diagnostics Inside Container
npm install --omit=dev run: |
else echo "--- /etc/resolv.conf inside container ---"
echo "package.json not found. Skipping npm install." cat /etc/resolv.conf
fi echo "--- Pinging google.com ---"
working-directory: ./ # Указывает, что npm install нужно выполнять в корне склонированного репозитория ping -c 3 google.com
# Если package.json для bc.js в подпапке server/, то: echo "--- Pinging Gitea Host (pavel-chagovsky.com) ---"
# working-directory: ./server ping -c 3 pavel-chagovsky.com
echo "--- nslookup Gitea Host (pavel-chagovsky.com) ---"
- name: Execute Deploy Script on Server nslookup pavel-chagovsky.com
uses: appleboy/ssh-action@master # Популярное действие для выполнения команд по SSH echo "--- Trying to curl Gitea by IP (replace YOUR_GITEA_IP and PORT if not 443) ---"
with: curl -kv https://81.177.140.16/gitea/
host: ${{ secrets.DEPLOY_HOST }} # IP или домен вашего сервера, где нужно выполнить деплой
username: ${{ secrets.DEPLOY_USER }} # Имя пользователя для SSH-доступа - name: Checkout repository
key: ${{ secrets.SSH_PRIVATE_KEY }} # Приватный SSH-ключ для доступа uses: actions/checkout@v3 # Стандартное действие для скачивания кода репозитория на раннер
port: ${{ secrets.DEPLOY_PORT || 22 }} # Порт SSH, по умолчанию 22
script: | - name: Setup Node.js # Если вам нужно определенная версия Node.js для npm install
echo "Starting deployment on server for project bc..." uses: actions/setup-node@v3
cd /home/nodejs/bc/ # Путь к рабочей копии проекта на сервере with:
git fetch origin main # Или ваша основная ветка node-version: '18' # Укажите нужную вам LTS или другую версию Node.js
git reset --hard origin/main
- name: Install Dependencies
# Если npm install должен выполняться на сервере деплоя, а не на раннере: run: | # Выполняем команды в рабочей директории раннера (куда был склонирован репозиторий)
# if [ -f package.json ]; then echo "Current directory: $(pwd)"
# echo "Installing server-side npm dependencies..." if [ -f package.json ]; then
# npm install --omit=dev echo "package.json found. Installing dependencies..."
# fi npm install --omit=dev
else
echo "Restarting PM2 process for bc..." echo "package.json not found. Skipping npm install."
pm2 restart bc # Имя или ID вашего bc приложения в PM2 fi
working-directory: ./ # Указывает, что npm install нужно выполнять в корне склонированного репозитория
# Если package.json для bc.js в подпапке server/, то:
# working-directory: ./server
- name: Execute Deploy Script on Server
uses: appleboy/ssh-action@master # Популярное действие для выполнения команд по SSH
with:
host: ${{ secrets.DEPLOY_HOST }} # IP или домен вашего сервера, где нужно выполнить деплой
username: ${{ secrets.DEPLOY_USER }} # Имя пользователя для SSH-доступа
key: ${{ secrets.SSH_PRIVATE_KEY }} # Приватный SSH-ключ для доступа
port: ${{ secrets.DEPLOY_PORT || 22 }} # Порт SSH, по умолчанию 22
script: |
echo "Starting deployment on server for project bc..."
cd /home/nodejs/bc/ # Путь к рабочей копии проекта на сервере
git fetch origin main # Или ваша основная ветка
git reset --hard origin/main
# Если npm install должен выполняться на сервере деплоя, а не на раннере:
# if [ -f package.json ]; then
# echo "Installing server-side npm dependencies..."
# npm install --omit=dev
# fi
echo "Restarting PM2 process for bc..."
pm2 restart bc # Имя или ID вашего bc приложения в PM2
echo "Deployment for bc finished." echo "Deployment for bc finished."

1
bc Submodule

@ -0,0 +1 @@
Subproject commit 1cfb69af0a0a5c188661b1ba5fe60d8d4940c7e2

View File

@ -142,7 +142,7 @@ function performAttack(
/** /**
* Применяет эффект способности. * применяет111 эффект способности.
* @param {object} ability - Объект способности. * @param {object} ability - Объект способности.
* @param {object} casterState - Состояние бойца, применившего способность. * @param {object} casterState - Состояние бойца, применившего способность.
* @param {object} targetState - Состояние цели способности. * @param {object} targetState - Состояние цели способности.
@ -177,10 +177,10 @@ function applyAbilityEffect(
const actualHeal = Math.min(healAmount, casterBaseStats.maxHp - casterState.currentHp); const actualHeal = Math.min(healAmount, casterBaseStats.maxHp - casterState.currentHp);
if (actualHeal > 0) { if (actualHeal > 0) {
casterState.currentHp = Math.round(casterState.currentHp + actualHeal); casterState.currentHp = Math.round(casterState.currentHp + actualHeal);
if (addToLogCallback) addToLogCallback(`💚 ${casterBaseStats.name} применяет "${ability.name}" и восстанавливает ${actualHeal} HP!`, configToUse.LOG_TYPE_HEAL); if (addToLogCallback) addToLogCallback(`💚 ${casterBaseStats.name} применяет111 "${ability.name}" и восстанавливает ${actualHeal} HP!`, configToUse.LOG_TYPE_HEAL);
actionOutcomeForTaunt = 'success'; // Для реакции оппонента, если таковая есть на хил actionOutcomeForTaunt = 'success'; // Для реакции оппонента, если таковая есть на хил
} else { } else {
if (addToLogCallback) addToLogCallback(`${casterBaseStats.name} применяет "${ability.name}", но не получает лечения (HP уже полное или хил = 0).`, configToUse.LOG_TYPE_INFO); if (addToLogCallback) addToLogCallback(`${casterBaseStats.name} применяет111 "${ability.name}", но не получает лечения (HP уже полное или хил = 0).`, configToUse.LOG_TYPE_INFO);
abilityApplicationSucceeded = false; abilityApplicationSucceeded = false;
actionOutcomeForTaunt = 'fail'; actionOutcomeForTaunt = 'fail';
} }
@ -202,7 +202,7 @@ function applyAbilityEffect(
targetState.currentHp = Math.max(0, Math.round(targetState.currentHp - damage)); targetState.currentHp = Math.max(0, Math.round(targetState.currentHp - damage));
if (addToLogCallback && !wasAbilityBlocked) { if (addToLogCallback && !wasAbilityBlocked) {
addToLogCallback(`💥 ${casterBaseStats.name} применяет "${ability.name}" на ${targetBaseStats.name}, нанося ${damage} урона!`, configToUse.LOG_TYPE_DAMAGE); addToLogCallback(`💥 ${casterBaseStats.name} применяет111 "${ability.name}" на ${targetBaseStats.name}, нанося ${damage} урона!`, configToUse.LOG_TYPE_DAMAGE);
} }
if (damage <= 0 && !wasAbilityBlocked) { // Если урон нулевой и не было блока (например, из-за резистов, которых пока нет) if (damage <= 0 && !wasAbilityBlocked) { // Если урон нулевой и не было блока (например, из-за резистов, которых пока нет)
@ -249,7 +249,7 @@ function applyAbilityEffect(
type: ability.type, duration: ability.effectDuration, turnsLeft: ability.effectDuration, type: ability.type, duration: ability.effectDuration, turnsLeft: ability.effectDuration,
power: ability.power, isFullSilence: true, justCast: true power: ability.power, isFullSilence: true, justCast: true
}); });
if (addToLogCallback) addToLogCallback(`🌀 ${casterBaseStats.name} применяет "${ability.name}" на ${targetBaseStats.name}! Способности цели заблокированы на ${ability.effectDuration} хода!`, configToUse.LOG_TYPE_EFFECT); if (addToLogCallback) addToLogCallback(`🌀 ${casterBaseStats.name} применяет111 "${ability.name}" на ${targetBaseStats.name}! Способности цели заблокированы на ${ability.effectDuration} хода!`, configToUse.LOG_TYPE_EFFECT);
actionOutcomeForTaunt = 'success'; actionOutcomeForTaunt = 'success';
} else { } else {
if (addToLogCallback) addToLogCallback(`${casterBaseStats.name} пытается применить "${ability.name}", но эффект уже активен на ${targetState.name}!`, configToUse.LOG_TYPE_INFO); if (addToLogCallback) addToLogCallback(`${casterBaseStats.name} пытается применить "${ability.name}", но эффект уже активен на ${targetState.name}!`, configToUse.LOG_TYPE_INFO);
@ -336,7 +336,7 @@ function applyAbilityEffect(
} }
} }
let logMsgDrain = `${casterBaseStats.name} применяет "${ability.name}"! `; let logMsgDrain = `${casterBaseStats.name} применяет111111111 "${ability.name}"! `;
if (damageDealtDrain > 0) logMsgDrain += `Наносит ${damageDealtDrain} урона ${targetBaseStats.name}. `; if (damageDealtDrain > 0) logMsgDrain += `Наносит ${damageDealtDrain} урона ${targetBaseStats.name}. `;
if (manaDrained > 0) { if (manaDrained > 0) {
logMsgDrain += `Вытягивает ${manaDrained} ${targetBaseStats.resourceName} у ${targetBaseStats.name}`; logMsgDrain += `Вытягивает ${manaDrained} ${targetBaseStats.resourceName} у ${targetBaseStats.name}`;

View File

@ -1,5 +0,0 @@
● gitea.service - Gitea (Git with a cup of tea)
Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Fri 2025-05-09 13:00:38 UTC; 13ms ago
Process: 137377 ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini (code=exited, status=217/USER)
Main PID: 137377 (code=exited, status=217/USER)