Difference between revisions of "Ideas for triggers"

From Bitfighter
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
A working list of ideas for triggers that could cause execution of code in a robot or supervisor script.  Remember that robots are a kind of ship, so, generally, there's no need differentiate the two.
 
A working list of ideas for triggers that could cause execution of code in a robot or supervisor script.  Remember that robots are a kind of ship, so, generally, there's no need differentiate the two.
  
 +
//Unknown: Would this be easier do to with functions that return booleans rather than a bunch of events?
 
<pre>
 
<pre>
 +
onLevelStart()  // Called after level is loaded and is ready to go.
 +
onTick()        // Called every frame
 +
 
// Here, zone could be any polygonal entity: loadout zones, nexus, goal zones, etc.
 
// Here, zone could be any polygonal entity: loadout zones, nexus, goal zones, etc.
 
onShipEnteredZone(ship, zone)  
 
onShipEnteredZone(ship, zone)  
Line 9: Line 13:
 
onFlagDropped(flag, dropper)
 
onFlagDropped(flag, dropper)
  
onShipSpawned(ship, spawnpoint)
+
onShipAboutToSpawn(ship)        // Called just before player spawns
 +
onShipSpawned(ship)             // Called just after player spawns
 
onShipDamaged(ship, damager)
 
onShipDamaged(ship, damager)
 
onShipKilled(ship, killer)
 
onShipKilled(ship, killer)
// The following function will be called before a ship will spawn and will return a
+
onShipFiring(ship, weapon, bullet) 
// the spawn point at witch it will spawn. onShipSpawned would be called after the
+
onShipUsingModule(ship, module)
// ship will spawn
+
 
getSpawnPointFor(ship)
+
onPlayerAboutToJoinGame(ship)  // Called just before player joins
 +
onPlayerJoinedGame(ship)        // Called just after player joins
 +
onPlayerQuitGame(ship)
 +
 
  
 
onTurretKilled(turret, killer)
 
onTurretKilled(turret, killer)
Line 56: Line 64:
 
onSoccerGoalScored(ball, goal, scorer)
 
onSoccerGoalScored(ball, goal, scorer)
 
onSoccerBallReset(ball) (when ball actually arrives back at starting position)
 
onSoccerBallReset(ball) (when ball actually arrives back at starting position)
 +
</pre>
 +
<pre>
 +
//Section by Unknown
 +
//This is all about what supervisors might be able to do -
 +
//I misunderstood the title of this section.
 +
 +
//Drawing functions
 +
drawSetColor(col) //col is a hex uint - 0xFFFF00 is yellow
 +
drawSetAlpha(amount) //amount is a value 0-1
 +
drawMove(x,y) //moves the pen to the specified position
 +
drawLine(x,y) //draws a line from the pen's current position to the
 +
              //specified position
 +
drawRectangle(x1,y1,x2,y2)
 +
drawCircle(x,y,r)
 +
drawEllipse(x1,y1,x2,y2)
 +
 +
//Functions that modify the game objects
 +
removeObject(object || marker)
 +
addObject(levelLine || (object, objectArgs))
 +
translateObject(object || marker, x, y)
 +
rotateObject(object || marker, x, y, amount)
 +
flipObject(object || marker, vertically) //vertically is a boolean that
 +
                          //determines which direction it is flipped in
 +
 +
//Functions that modify the ship's properties
 +
Ship:teleport(x,y)
 +
Ship:setVelocity(x,y)
 +
Ship:x()
 +
Ship:y()
 +
Ship:xSpeed()
 +
Ship:ySpeed()
 +
Ship:setEnergy(amount)
 +
Ship:getEnergy()
 +
Ship:setHealth(amount)
 +
Ship:getHealth()
 +
Ship:setMaxSpeed(maxSpeed)
 +
Ship:getMaxSpeed()
 +
Ship:setMaxBoostSpeed(maxSpeed)
 +
Ship:getMaxBoostSpeed()
 +
Ship:setFriction(amount)
 +
Ship:getFriction()
 +
Ship:destroyShip() //may not be necessary because setShipHealth(0)
 +
                  //could be used
 
</pre>
 
</pre>

Latest revision as of 23:40, 10 April 2010

A working list of ideas for triggers that could cause execution of code in a robot or supervisor script. Remember that robots are a kind of ship, so, generally, there's no need differentiate the two.

//Unknown: Would this be easier do to with functions that return booleans rather than a bunch of events?

onLevelStart()  // Called after level is loaded and is ready to go.
onTick()        // Called every frame

// Here, zone could be any polygonal entity: loadout zones, nexus, goal zones, etc.
onShipEnteredZone(ship, zone) 
onShipLeftZone(ship, zone)

onFlagGrabbed(flag, ship)
onFlagDropped(flag, dropper)

onShipAboutToSpawn(ship)        // Called just before player spawns
onShipSpawned(ship)             // Called just after player spawns
onShipDamaged(ship, damager)
onShipKilled(ship, killer)
onShipFiring(ship, weapon, bullet)  
onShipUsingModule(ship, module)

onPlayerAboutToJoinGame(ship)   // Called just before player joins
onPlayerJoinedGame(ship)        // Called just after player joins
onPlayerQuitGame(ship)


onTurretKilled(turret, killer)
onAllTurretsKilled(team)
onForceFieldKilled(forcefield, killer)
onAllForceFieldKilled(team)

onTeamScored(team, score, scoringEvent, scoringShip)
onIndividualScored(scoringShip, score, scoringEvent)
onLeadingTeamChanged(team, previousLeadingTeam)
onLeadingPlayerChanged(player, previousLeadingPlayer)

onAsteroidSpawned(asteroid)
onAsteroidShot(asteroid, shooter)
onAsteroidDestroyed(asteroid, shooter)

onHealthPackUsed(healthpack, ship)
onHealthPackReplenished(healthpack)


onTurretSelectedTarget(turret, target)
onTurretFired(turret, target)

// Game specific events: named on<Game>EventName

onNexusOpen(nexus)
onNexusClose(nexus)
onNexusFlagCollected(flag, ship)

onRabbitKilled(rabbit, killer)
onRabbitGrabbedFlag(rabbit)

onZoneControlZoneCaptured(zone, capturer)
onZoneControlTouchDownScored(scoringShip) ( or onZonesReset() )

onHTFFlagReturnedToZone(flag, zone, returner)
onHTFFlagRemovedFromZone(flag, zone, taker)

onSoccerBallPossesionChanged(ball, possessingShip, previousPossesser)
onSoccerGoalScored(ball, goal, scorer)
onSoccerBallReset(ball) (when ball actually arrives back at starting position)
//Section by Unknown
//This is all about what supervisors might be able to do -
//I misunderstood the title of this section.

//Drawing functions
drawSetColor(col) //col is a hex uint - 0xFFFF00 is yellow
drawSetAlpha(amount) //amount is a value 0-1
drawMove(x,y) //moves the pen to the specified position
drawLine(x,y) //draws a line from the pen's current position to the 
              //specified position
drawRectangle(x1,y1,x2,y2)
drawCircle(x,y,r)
drawEllipse(x1,y1,x2,y2)

//Functions that modify the game objects
removeObject(object || marker)
addObject(levelLine || (object, objectArgs))
translateObject(object || marker, x, y)
rotateObject(object || marker, x, y, amount)
flipObject(object || marker, vertically) //vertically is a boolean that 
                          //determines which direction it is flipped in

//Functions that modify the ship's properties
Ship:teleport(x,y)
Ship:setVelocity(x,y)
Ship:x()
Ship:y()
Ship:xSpeed()
Ship:ySpeed()
Ship:setEnergy(amount)
Ship:getEnergy()
Ship:setHealth(amount)
Ship:getHealth()
Ship:setMaxSpeed(maxSpeed)
Ship:getMaxSpeed()
Ship:setMaxBoostSpeed(maxSpeed)
Ship:getMaxBoostSpeed()
Ship:setFriction(amount)
Ship:getFriction()
Ship:destroyShip() //may not be necessary because setShipHealth(0) 
                  //could be used