Update README.md to refocus on core components so I can finish this project and quit Tribes 2, minor changes

This commit is contained in:
loop 2025-10-26 18:35:44 +00:00
parent 9ffd8008d4
commit 2bbf5c658f
4 changed files with 21 additions and 39 deletions

View file

@ -4,49 +4,20 @@ SkillSector is a game mode for Tribes 2 for building skills you will need to pla
# Mode plan # 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.\ 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 #### Aim training
- [ ] Flying aim training, multiple difficulty levels - [x] Static aim training
- [ ] Dynamic aim training
- [ ] LakRabbit aim training
#### Duelling
- [ ] Human duel arena(s) - [ ] Human duel arena(s)
- [ ] Robot duel arena(s) - [ ] Robot duel arena(s)
#### Flag handling #### Flag handling
- [ ] Flag toss practice - [x] Flag toss practice
- [ ] Baseball machine flag catch practice (CTF, TR2) - [x] Baseball machine flag catch practice (CTF, TR2)
- [ ] Human flag practice (CTF, TR2) - [x] Human flag practice (CTF, TR2)
#### Toys #### Toys
- [ ] Grav cycle racing - [ ] Grav cycle racing
- [ ] Ski 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 #### 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) - 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

View file

@ -37,6 +37,10 @@ function SkillSectorGame::missionLoadDone(%game) {
function SkillSectorGame::initGameVars(%game) { function SkillSectorGame::initGameVars(%game) {
} }
function SkillSectorGame::onClientLeaveGame(%client) {
CLWaypointWrangler(%client);
}
// No longer dispatching 'primary' waypoints because they can't be made semi-permanent. // No longer dispatching 'primary' waypoints because they can't be made semi-permanent.
function SkillSectorGame::clientMissionDropReady(%game, %client) { function SkillSectorGame::clientMissionDropReady(%game, %client) {
messageClient(%client, 'MsgClientReady',"", %game.class); messageClient(%client, 'MsgClientReady',"", %game.class);
@ -52,7 +56,6 @@ function SkillSectorGame::clientMissionDropReady(%game, %client) {
DefaultGame::clientMissionDropReady(%game, %client); DefaultGame::clientMissionDropReady(%game, %client);
} }
function SkillSectorGame::gameOver(%game) { function SkillSectorGame::gameOver(%game) {
DefaultGame::gameOver(%game); DefaultGame::gameOver(%game);

View file

@ -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'); messageClient(%collider.client, 'MsgStationDenied', '\c2Teleporter is recharging please stand by. ~wfx/powered/nexus_deny.wav');
return; 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.setVelocity("0 0 0");
%collider.setMoveState(true); %collider.setMoveState(true);
%collider.startFade(1000, 0, true); %collider.startFade(1000, 0, true);

View file

@ -42,6 +42,11 @@ function WaypointWranglerZone::onLeaveTrigger(%this, %trigger, %obj) {
function WaypointWranglerZone::onTickTrigger(%this, %trigger) { function WaypointWranglerZone::onTickTrigger(%this, %trigger) {
} }
function CLWaypointWrangler(%client) {
// cancel any ongoing waypoint wrangler scheduler
cancel(%client.wwsched);
}
function ShutdownWaypointWrangler() { function ShutdownWaypointWrangler() {
%count = ClientGroup.getCount(); %count = ClientGroup.getCount();
for (%i = 0; %i < %count; %i++) { for (%i = 0; %i < %count; %i++) {
@ -112,9 +117,12 @@ function WWDispatch(%client, %zoneIndex) {
for (%i = 1; %i < $WPZPoints[%zoneIndex, 0]+1; %i++) { for (%i = 1; %i < $WPZPoints[%zoneIndex, 0]+1; %i++) {
showWaypoint(%client, $WPZPoints[%zoneIndex, %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); %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) { function WWStartWaypointDispatch(%client, %zone) {
// echo("zone count:" @ $WPZNextFree); // echo("zone count:" @ $WPZNextFree);
for (%i = 0; %i < $WPZNextFree; %i++) { for (%i = 0; %i < $WPZNextFree; %i++) {