Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 9371 for code/branches


Ignore:
Timestamp:
Sep 6, 2012, 2:16:41 PM (12 years ago)
Author:
jo
Message:

The UnderAttack level was improved. The defender's spawnpoints have been rearranged such that they don't get stuck in the Transporter. In order to catch bots that are too far away from the transporter a spaceboundary damages spaceships that are too far away from the transporter. Therefore the spaceboundary's code has to be updated to enable it to be moved around.

Location:
code/branches/release2012
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/release2012/data/levels/underAttack.oxw

    r9370 r9371  
    4646    <?lua end ?>
    4747
    48 
    49 
     48<!--- A SpaceBoundary moving along with the transporter, in order to filter out bots that are too far away from the transporter ---->
     49      <MovableEntity
     50          position="0,0,0"
     51          velocity="-35,0,0"
     52      >
     53        <attached>
     54            <SpaceBoundaries position="1,2,3" maxDistance="1600" warnDistance="300" showDistance="300" reactionMode="1" healthDecrease="5.0" />
     55          <BlinkingBillboard
     56            position="0,0,0"
     57            material="Flares/ringflare2"
     58            colour="1.0, 0.5, 0.3"
     59            phase="-180"
     60            amplitude=0.1
     61            frequency=0.5
     62            quadratic=1
     63          />
     64        </attached>
     65      </MovableEntity>
    5066
    5167
     
    6379
    6480      <attached>
    65         <TeamSpawnPoint team=1 position="150,0,-50" direction="-1,0,0" roll=90 yaw=0 spawnclass=SpaceShip pawndesign=spaceshipassff />
    66         <TeamSpawnPoint team=1 position="0,0,-50" lookat="-1,0,0" roll="90"  yaw=0 spawnclass=SpaceShip pawndesign=spaceshipassff />
    67         <TeamSpawnPoint team=1 position="-50,0,-50" lookat="-1,0,0" roll="90" yaw=0 spawnclass=SpaceShip pawndesign=spaceshipassff />
     81        <TeamSpawnPoint team=1 position="200,0,20" direction="-1,0,0" roll=90 yaw=0 spawnclass=SpaceShip pawndesign=spaceshipassff />
     82        <TeamSpawnPoint team=1 position="50,0,100" lookat="-1,0,0" roll="90"  yaw=0 spawnclass=SpaceShip pawndesign=spaceshipassff />
     83        <TeamSpawnPoint team=1 position="-200,0,20" lookat="-1,0,0" roll="90" yaw=0 spawnclass=SpaceShip pawndesign=spaceshipassff />
    6884        <TeamSpawnPoint team=1 position="100,0,-50" lookat="-1,0,0" roll="90" yaw=0 spawnclass=SpaceShip pawndesign=spaceshipassff />
    69         <TeamSpawnPoint team=1 position="50,0,-50" lookat="-1,0,0" roll="90" yaw=0 spawnclass=SpaceShip pawndesign=spaceshipassff />
     85        <TeamSpawnPoint team=1 position="400,0,20" lookat="-1,0,0" roll="90" yaw=0 spawnclass=SpaceShip pawndesign=spaceshipassff />
    7086        <?lua for i = 1, 100, 1 do ?>
    7187          <TeamSpawnPoint
    7288            team=0
    73             position="<?lua print((math.random() * 500 + 500) * (math.floor(math.random() + 0.5) * 2 - 1)) ?>,<?lua print((math.random() * 500 + 500) * (math.floor(math.random() + 0.5) * 2 - 1)) ?>,<?lua print((math.random() * 500 + 500) * (math.floor(math.random() + 0.5) * 2 - 1)) ?>"
     89            position="<?lua print((math.random() * 450 + 450) * (math.floor(math.random() + 0.5) * 2 - 1)) ?>,<?lua print((math.random() * 450 + 450) * (math.floor(math.random() + 0.5) * 2 - 1)) ?>,<?lua print((math.random() * 450 + 450) * (math.floor(math.random() + 0.5) * 2 - 1)) ?>"
    7490            lookat="0,0,0"
    7591            spawnclass=SpaceShip
  • code/branches/release2012/src/modules/objects/SpaceBoundaries.cc

    r8858 r9371  
    117117        this->billboards_[current].usedYet = true;
    118118
    119         Vector3 directionVector = (this->getPosition() - position).normalisedCopy(); // vector from the position of the billboard to the center of the sphere
     119        Vector3 directionVector = (this->getWorldPosition() - position).normalisedCopy(); // vector from the position of the billboard to the center of the sphere
    120120        this->billboards_[current].billy->setCommonDirection(directionVector);
    121121
     
    252252        if(item != NULL)
    253253        {
    254             Vector3 itemPosition = item->getPosition();
    255             return (itemPosition.distance(this->getPosition()));
     254            Vector3 itemPosition = item->getWorldPosition();
     255            return (itemPosition.distance(this->getWorldPosition()));
    256256        } else {
    257257            return -1;
     
    267267    {
    268268
    269         Vector3 direction = item->getPosition() - this->getPosition();
     269        Vector3 direction = item->getWorldPosition() - this->getWorldPosition();
    270270        direction.normalise();
    271271
    272         Vector3 boundaryPosition = this->getPosition() + direction * this->maxDistance_;
     272        Vector3 boundaryPosition = this->getWorldPosition() + direction * this->maxDistance_;
    273273
    274274        this->positionBillboard(boundaryPosition, alpha);
     
    277277    void SpaceBoundaries::conditionalBounceBack(Pawn *item, float currentDistance, float dt)
    278278    {
    279         Vector3 normal = item->getPosition() - this->getPosition();
     279        Vector3 normal = item->getWorldPosition() - this->getWorldPosition();
    280280        normal.normalise();
    281281        Vector3 velocity = item->getVelocity();
     
    300300        acceleration = acceleration.reflect(*normal);
    301301
    302         item->lookAt( *velocity + this->getPosition() );
     302        item->lookAt( *velocity + this->getWorldPosition() );
    303303
    304304        item->setAcceleration(acceleration * dampingFactor);
    305305        item->setVelocity(*velocity * dampingFactor);
    306306
    307         item->setPosition( item->getPosition() - *normal * 10 ); // Set the position of the Pawn to be well inside the boundary.
     307        item->setPosition( item->getWorldPosition() - *normal * 10 ); // Set the position of the Pawn to be well inside the boundary.
    308308    }
    309309
Note: See TracChangeset for help on using the changeset viewer.