From 2bbf5c658f166446b91b78e27dae54407d85fd33 Mon Sep 17 00:00:00 2001 From: loop <126372784+tribes2@users.noreply.github.com> Date: Sun, 26 Oct 2025 18:35:44 +0000 Subject: [PATCH] Update README.md to refocus on core components so I can finish this project and quit Tribes 2, minor changes --- README.md | 45 +++++--------------------- scripts/SkillSectorGame.cs | 5 ++- scripts/SkillSectorTeleporter.cs | 2 +- scripts/SkillSectorWaypointWrangler.cs | 8 +++++ 4 files changed, 21 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 11c2b19..cbbe8a1 100644 --- a/README.md +++ b/README.md @@ -4,49 +4,20 @@ SkillSector is a game mode for Tribes 2 for building skills you will need to pla # Mode plan Building on the concepts seen in the [Training Grounds](https://github.com/jakraska/Tribes-2-Training-Grounds/) game mode by [jakraska](https://github.com/jakraska), SkillSector hopes to achieve the following features for the following modes.\ -#### Movement and shooting - - [ ] Flying aim training, multiple difficulty levels +#### Aim training + - [x] Static aim training + - [ ] Dynamic aim training + - [ ] LakRabbit aim training +#### Duelling - [ ] Human duel arena(s) - [ ] Robot duel arena(s) #### Flag handling - - [ ] Flag toss practice - - [ ] Baseball machine flag catch practice (CTF, TR2) - - [ ] Human flag practice (CTF, TR2) + - [x] Flag toss practice + - [x] Baseball machine flag catch practice (CTF, TR2) + - [x] Human flag practice (CTF, TR2) #### Toys - [ ] Grav cycle racing - [ ] Ski racing -# Modes -## Flying aim training -### Beginner difficulty -Static targets. Shots will only count when the player is... - - In the air - - Travelling at a minimum velocity - -Different weapons will have different scores based on their 'ease' of hitting a static target.\ -Static targets will be both on the ground and in the air.\ -Hitting a static target with splash damage will count, but won't grant much score compared to a direct hit. - -### Moderate difficulty -Moving targets. Splash damage does not count. Same rules as previous. - -### Advanced difficulty -Fast moving targets. Same rules as previous. - -## Human duel arena(s) -Humans should be able to schedule a duel between themselves. I like the way that TG did it. - -## Robot duel arena(s) -Humans should be able to select from various difficulty robots for dueling. - -## Flag toss/catch practice -Flag tossing and flag catching require a fair bit of practice. Doing so manually or between players - #### auxiliary todo list / odds and ends - noIndividualDamage could be set for the roof's power stations, making it possible to annoy other players by disabling FloatingBank's inventory station(s) - - -# map ideas -# twin towers 9/11 map is a good meme - -# flying aim training thinking \ No newline at end of file diff --git a/scripts/SkillSectorGame.cs b/scripts/SkillSectorGame.cs index 74cec09..ce7e929 100644 --- a/scripts/SkillSectorGame.cs +++ b/scripts/SkillSectorGame.cs @@ -37,6 +37,10 @@ function SkillSectorGame::missionLoadDone(%game) { function SkillSectorGame::initGameVars(%game) { } +function SkillSectorGame::onClientLeaveGame(%client) { + CLWaypointWrangler(%client); +} + // No longer dispatching 'primary' waypoints because they can't be made semi-permanent. function SkillSectorGame::clientMissionDropReady(%game, %client) { messageClient(%client, 'MsgClientReady',"", %game.class); @@ -52,7 +56,6 @@ function SkillSectorGame::clientMissionDropReady(%game, %client) { DefaultGame::clientMissionDropReady(%game, %client); } - function SkillSectorGame::gameOver(%game) { DefaultGame::gameOver(%game); diff --git a/scripts/SkillSectorTeleporter.cs b/scripts/SkillSectorTeleporter.cs index ae2831c..ff2ade8 100644 --- a/scripts/SkillSectorTeleporter.cs +++ b/scripts/SkillSectorTeleporter.cs @@ -38,7 +38,7 @@ function BankTeleporter::onCollision(%data, %obj, %collider) { messageClient(%collider.client, 'MsgStationDenied', '\c2Teleporter is recharging please stand by. ~wfx/powered/nexus_deny.wav'); return; } - messageClient(%collider.client, 'MsgTeleportStart', '\c2Teleporter is calculating transport coherence... ~wfx/misc/nexus_idle.wav'); + //messageClient(%collider.client, 'MsgTeleportStart', '\c2Teleporter is calculating transport coherence... ~wfx/misc/nexus_idle.wav'); %collider.setVelocity("0 0 0"); %collider.setMoveState(true); %collider.startFade(1000, 0, true); diff --git a/scripts/SkillSectorWaypointWrangler.cs b/scripts/SkillSectorWaypointWrangler.cs index 3548c58..4d59155 100644 --- a/scripts/SkillSectorWaypointWrangler.cs +++ b/scripts/SkillSectorWaypointWrangler.cs @@ -42,6 +42,11 @@ function WaypointWranglerZone::onLeaveTrigger(%this, %trigger, %obj) { function WaypointWranglerZone::onTickTrigger(%this, %trigger) { } +function CLWaypointWrangler(%client) { + // cancel any ongoing waypoint wrangler scheduler + cancel(%client.wwsched); +} + function ShutdownWaypointWrangler() { %count = ClientGroup.getCount(); for (%i = 0; %i < %count; %i++) { @@ -112,9 +117,12 @@ function WWDispatch(%client, %zoneIndex) { for (%i = 1; %i < $WPZPoints[%zoneIndex, 0]+1; %i++) { showWaypoint(%client, $WPZPoints[%zoneIndex, %i]); } + cancel(%client.wwsched); // can't be dispatched for more than one zone at once %client.wwsched = schedule(1900, 0, WWDispatch, %client, %zoneIndex); } +// This function is unnecessarily expensive, this lookup could be done by attaching the zone and index to the trigger. +// I'm also too lazy to re-write it now function WWStartWaypointDispatch(%client, %zone) { // echo("zone count:" @ $WPZNextFree); for (%i = 0; %i < $WPZNextFree; %i++) {