mirror of
https://github.com/tribes2/SkillSector.git
synced 2026-01-19 11:34:46 +00:00
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:
parent
9ffd8008d4
commit
2bbf5c658f
45
README.md
45
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
|
||||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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++) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue