Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af6870f6a9 | ||
|
|
968808df6d | ||
|
|
472c49944b | ||
|
|
5c789cb37f |
+19
-19
@@ -3,7 +3,7 @@ name: Release
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
- "v*"
|
||||
|
||||
jobs:
|
||||
release:
|
||||
@@ -20,29 +20,29 @@ jobs:
|
||||
- name: Checkout Code
|
||||
run: |
|
||||
git config --global credential.helper store
|
||||
echo "http://god:${{ secrets.TEKTON_RELEASE_TOKEN }}@52.74.133.55:3000" > ~/.git-credentials
|
||||
git clone http://52.74.133.55:3000/danchie/tekton.git .
|
||||
echo "https://god:${{ secrets.TEKTON_RELEASE_TOKEN }}@git.klud.top" > ~/.git-credentials
|
||||
git clone https://git.klud.top/danchie/tekton.git .
|
||||
git checkout $TAG_NAME
|
||||
|
||||
- name: Setup Godot (Cached)
|
||||
run: |
|
||||
apt-get update -qq && apt-get install -y -qq unzip curl
|
||||
if [ ! -f /cache/godot_4.7 ]; then
|
||||
echo "Downloading Godot 4.7..."
|
||||
curl -sL -o /tmp/godot.zip "https://github.com/godotengine/godot-builds/releases/download/4.7-stable/Godot_v4.7-stable_linux.x86_64.zip"
|
||||
if [ ! -f /cache/godot_4.6.3 ]; then
|
||||
echo "Downloading Godot 4.6.3..."
|
||||
curl -sL -o /tmp/godot.zip "https://github.com/godotengine/godot-builds/releases/download/4.6.3-stable/Godot_v4.6.3-stable_linux.x86_64.zip"
|
||||
unzip -q -o /tmp/godot.zip -d /cache/
|
||||
mv /cache/Godot_v4.7-stable_linux.x86_64 /cache/godot_4.7
|
||||
mv /cache/Godot_v4.6.3-stable_linux.x86_64 /cache/godot_4.6.3
|
||||
fi
|
||||
cp /cache/godot_4.7 /usr/local/bin/godot
|
||||
cp /cache/godot_4.6.3 /usr/local/bin/godot
|
||||
chmod +x /usr/local/bin/godot
|
||||
mkdir -p ~/.local/share/godot/export_templates/4.7.stable
|
||||
if [ ! -f /cache/Godot_v4.7-stable_export_templates.tpz ]; then
|
||||
mkdir -p ~/.local/share/godot/export_templates/4.6.3.stable
|
||||
if [ ! -f /cache/Godot_v4.6.3-stable_export_templates.tpz ]; then
|
||||
echo "Downloading templates..."
|
||||
curl -sL -o /cache/Godot_v4.7-stable_export_templates.tpz \
|
||||
"https://github.com/godotengine/godot-builds/releases/download/4.7-stable/Godot_v4.7-stable_export_templates.tpz"
|
||||
curl -sL -o /cache/Godot_v4.6.3-stable_export_templates.tpz \
|
||||
"https://github.com/godotengine/godot-builds/releases/download/4.6.3-stable/Godot_v4.6.3-stable_export_templates.tpz"
|
||||
fi
|
||||
cd ~/.local/share/godot/export_templates/4.7.stable
|
||||
unzip -q -o /cache/Godot_v4.7-stable_export_templates.tpz
|
||||
cd ~/.local/share/godot/export_templates/4.6.3.stable
|
||||
unzip -q -o /cache/Godot_v4.6.3-stable_export_templates.tpz
|
||||
mv templates/* .
|
||||
rm -rf templates
|
||||
cd $GITHUB_WORKSPACE
|
||||
@@ -85,7 +85,7 @@ jobs:
|
||||
- name: Create Gitea Release
|
||||
run: |
|
||||
set -e
|
||||
API="http://52.74.133.55:3000/api/v1/repos/danchie/tekton/releases"
|
||||
API="https://git.klud.top/api/v1/repos/danchie/tekton/releases"
|
||||
TAG="$TAG_NAME"
|
||||
echo "Checking existing release for $TAG..."
|
||||
RELEASE_JSON=$(curl -s -H "Authorization: token $GITEA_TOKEN" "$API/tags/$TAG" 2>/dev/null || echo "")
|
||||
@@ -116,7 +116,7 @@ jobs:
|
||||
-H "Authorization: token $GITEA_TOKEN" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "attachment=@build/tekton_armageddon_windows_${TAG_NAME}.zip" \
|
||||
"http://52.74.133.55:3000/api/v1/repos/danchie/tekton/releases/$RELEASE_ID/assets"
|
||||
"https://git.klud.top/api/v1/repos/danchie/tekton/releases/$RELEASE_ID/assets"
|
||||
echo "Windows uploaded"
|
||||
|
||||
- name: Upload Linux asset
|
||||
@@ -126,7 +126,7 @@ jobs:
|
||||
-H "Authorization: token $GITEA_TOKEN" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "attachment=@build/tekton_armageddon_linux_${TAG_NAME}.zip" \
|
||||
"http://52.74.133.55:3000/api/v1/repos/danchie/tekton/releases/$RELEASE_ID/assets"
|
||||
"https://git.klud.top/api/v1/repos/danchie/tekton/releases/$RELEASE_ID/assets"
|
||||
echo "Linux uploaded"
|
||||
|
||||
- name: Upload macOS asset
|
||||
@@ -137,7 +137,7 @@ jobs:
|
||||
-H "Authorization: token $GITEA_TOKEN" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "attachment=@build/tekton_armageddon_macos_${TAG_NAME}.zip" \
|
||||
"http://52.74.133.55:3000/api/v1/repos/danchie/tekton/releases/$RELEASE_ID/assets"
|
||||
"https://git.klud.top/api/v1/repos/danchie/tekton/releases/$RELEASE_ID/assets"
|
||||
echo "macOS uploaded"
|
||||
else
|
||||
echo "macOS asset not built, skipping"
|
||||
@@ -150,5 +150,5 @@ jobs:
|
||||
-H "Authorization: token $GITEA_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"draft":false}' \
|
||||
"http://52.74.133.55:3000/api/v1/repos/danchie/tekton/releases/$RELEASE_ID"
|
||||
"https://git.klud.top/api/v1/repos/danchie/tekton/releases/$RELEASE_ID"
|
||||
echo "Published: https://git.klud.top/danchie/tekton/releases/tag/$TAG_NAME"
|
||||
|
||||
@@ -4,11 +4,11 @@ on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: 'Patch version (e.g., 2.4.2)'
|
||||
description: "Patch version (e.g., 2.4.4)"
|
||||
required: true
|
||||
type: string
|
||||
notes:
|
||||
description: 'Release notes'
|
||||
description: "Release notes"
|
||||
required: false
|
||||
type: string
|
||||
|
||||
@@ -22,20 +22,20 @@ jobs:
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.TEKTON_RELEASE_TOKEN }}
|
||||
run: |
|
||||
git clone --depth 1 http://god:$GITEA_TOKEN@52.74.133.55:3000/danchie/tekton.git .
|
||||
git clone --depth 1 https://god:$GITEA_TOKEN@git.klud.top/danchie/tekton.git .
|
||||
git config user.name "god"
|
||||
git config user.email "god@noreply.git.klud.top"
|
||||
|
||||
- name: Setup Godot (Cached)
|
||||
run: |
|
||||
if [ ! -f /cache/godot_4.7 ]; then
|
||||
echo "Downloading Godot 4.7..."
|
||||
if [ ! -f /cache/godot_4.6.3 ]; then
|
||||
echo "Downloading Godot 4.6.3..."
|
||||
apt-get update -qq && apt-get install -y -qq unzip curl
|
||||
curl -sL -o /tmp/godot.zip "https://github.com/godotengine/godot-builds/releases/download/4.7-stable/Godot_v4.7-stable_linux.x86_64.zip"
|
||||
curl -sL -o /tmp/godot.zip "https://github.com/godotengine/godot-builds/releases/download/4.6.3-stable/Godot_v4.6.3-stable_linux.x86_64.zip"
|
||||
unzip -q -o /tmp/godot.zip -d /cache/
|
||||
mv /cache/Godot_v4.7-stable_linux.x86_64 /cache/godot_4.7
|
||||
mv /cache/Godot_v4.6.3-stable_linux.x86_64 /cache/godot_4.6.3
|
||||
fi
|
||||
cp /cache/godot_4.7 /usr/local/bin/godot
|
||||
cp /cache/godot_4.6.3 /usr/local/bin/godot
|
||||
chmod +x /usr/local/bin/godot
|
||||
mkdir -p build
|
||||
|
||||
@@ -61,7 +61,7 @@ jobs:
|
||||
git init
|
||||
git config user.name "god"
|
||||
git config user.email "god@noreply.git.klud.top"
|
||||
git remote add origin http://god:$GITEA_TOKEN@52.74.133.55:3000/danchie/tekton.git
|
||||
git remote add origin https://god:$GITEA_TOKEN@git.klud.top/danchie/tekton.git
|
||||
git checkout -b patches
|
||||
git add .
|
||||
git commit -m "patch ${{ github.event.inputs.version }}"
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
|
||||
config/name="Tekton Dash Armageddon"
|
||||
config/version="2.4.3"
|
||||
run/main_scene="res://scenes/ui/boot_screen.tscn"
|
||||
config/features=PackedStringArray("4.7", "Forward Plus")
|
||||
config/features=PackedStringArray("4.6", "Forward Plus")
|
||||
boot_splash/bg_color=Color(0.16470589, 0.6745098, 0.9372549, 1)
|
||||
boot_splash/stretch_mode=0
|
||||
boot_splash/image="uid://b10e6kr508642"
|
||||
|
||||
+2
-1
@@ -204,7 +204,8 @@ func _setup_effect_elevation():
|
||||
print("[Main] MeshLibrary elevation applied: Wall(4) and Freeze(5) at Y=0.8")
|
||||
|
||||
# Force gridmap cell size to match player logic (1, 0.05, 1) - >0.001 to avoid errors
|
||||
var em = $EnhancedGridMap
|
||||
if not em:
|
||||
em = get_node_or_null("EnhancedGridMap")
|
||||
if em:
|
||||
em.cell_size = Vector3(1, 0.05, 1)
|
||||
|
||||
|
||||
@@ -218,15 +218,25 @@ func _run_ai_tick():
|
||||
# Priority 0.7: Candy Survival — Deliver candies to Mekton NPC
|
||||
if strategic_planner and strategic_planner.is_candy_survival_mode():
|
||||
var gm = strategic_planner._get_candy_survival_manager()
|
||||
if gm and gm.is_active:
|
||||
if gm and gm.active:
|
||||
var pid = actor.get("peer_id") if "peer_id" in actor else actor.name.to_int()
|
||||
var held_color = gm.player_candy_color.get(pid, -1)
|
||||
if held_color != -1 and gm.player_candies.get(pid, 0) > 0:
|
||||
if held_color == gm.current_face:
|
||||
# Face matches! Run to the NPC Center!
|
||||
var path = strategic_planner.find_path(actor.current_position, Vector2i(8, 8))
|
||||
if path.size() > 0:
|
||||
_execute_move(path[0])
|
||||
var path = enhanced_gridmap.find_path(
|
||||
Vector2(actor.current_position),
|
||||
Vector2(8, 8),
|
||||
0, false, false
|
||||
)
|
||||
if path.size() >= 2:
|
||||
var next_step = Vector2i(path[1].x, path[1].y)
|
||||
if actor.movement_manager.simple_move_to(next_step):
|
||||
_is_processing_action = true
|
||||
_current_action = "delivering_candies"
|
||||
while is_instance_valid(actor) and actor.is_player_moving:
|
||||
await get_tree().process_frame
|
||||
_is_processing_action = false
|
||||
print("[BotController] Action Taken: Delivering candies to Mekton!")
|
||||
return
|
||||
|
||||
|
||||
@@ -79,10 +79,6 @@ func _setup_hud() -> void:
|
||||
if hud_rush_bar:
|
||||
hud_rush_label = hud_rush_bar.get_node_or_null("SugarRushLabel")
|
||||
|
||||
func start_game_mode() -> void:
|
||||
if multiplayer.is_server():
|
||||
activate_client_side()
|
||||
|
||||
func activate_client_side() -> void:
|
||||
active = true
|
||||
if hud_layer:
|
||||
@@ -129,6 +125,8 @@ func _define_sticky_walls() -> void:
|
||||
sticky_cells[Vector2i(NPC_CENTER.x + dx, NPC_CENTER.y + dy)] = true
|
||||
|
||||
func start_game_mode() -> void:
|
||||
if multiplayer.is_server():
|
||||
activate_client_side()
|
||||
active = true
|
||||
current_face = CandyColor.HEART
|
||||
face_timer = 0.0
|
||||
@@ -391,9 +389,9 @@ func is_ghost_active(pid: int) -> bool:
|
||||
func _setup_arena() -> void:
|
||||
if not gridmap:
|
||||
return
|
||||
gridmap.clear_layer(0)
|
||||
gridmap.clear_layer(1)
|
||||
gridmap.clear_layer(2)
|
||||
gridmap.set("columns", ARENA_COLS)
|
||||
gridmap.set("rows", ARENA_ROWS)
|
||||
gridmap.clear()
|
||||
|
||||
# Build floor
|
||||
for x in range(ARENA_COLS):
|
||||
@@ -490,6 +488,8 @@ func get_score(pid: int) -> int:
|
||||
|
||||
@rpc("authority", "call_remote", "unreliable")
|
||||
func sync_candy_badge(pid: int, count: int, mult: float, face_match: bool) -> void:
|
||||
if not active:
|
||||
activate_client_side()
|
||||
if pid == multiplayer.get_unique_id():
|
||||
if hud_stack_badge:
|
||||
hud_stack_badge.text = "Stack: %d (x%.1f)" % [count, mult]
|
||||
@@ -506,6 +506,8 @@ func sync_candy_badge(pid: int, count: int, mult: float, face_match: bool) -> vo
|
||||
|
||||
@rpc("authority", "call_remote", "unreliable")
|
||||
func sync_knock_result(attacker: int, target: int, candies: int) -> void:
|
||||
if not active:
|
||||
activate_client_side()
|
||||
var local = multiplayer.get_unique_id()
|
||||
if attacker == local or target == local:
|
||||
if hud_knock_label and player_knocks.has(local):
|
||||
@@ -513,7 +515,8 @@ func sync_knock_result(attacker: int, target: int, candies: int) -> void:
|
||||
|
||||
@rpc("authority", "call_remote", "unreliable")
|
||||
func sync_ghost_active(pid: int, active_on: bool) -> void:
|
||||
if not active:
|
||||
activate_client_side()
|
||||
if pid == multiplayer.get_unique_id():
|
||||
if hud_ghost_label and player_ghosts.has(pid):
|
||||
hud_ghost_label.text = "👻 Ghosts: %d" % player_ghosts[pid]
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ func simple_move_to(grid_position: Vector2i) -> bool:
|
||||
return false
|
||||
|
||||
# Candy Survival explicit wall overrides (since we visually removed the wall blocks)
|
||||
if gm and gm.is_active:
|
||||
if gm and gm.active:
|
||||
if gm._is_npc_zone(grid_position):
|
||||
print("[Move] Failed: Blocked by Candy Survival NPC center at %s" % grid_position)
|
||||
return false
|
||||
|
||||
Reference in New Issue
Block a user