Changeset 11199
- Timestamp:
- May 26, 2016, 3:13:51 PM (8 years ago)
- Location:
- code/branches/presentationFS16
- Files:
-
- 17 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
code/branches/presentationFS16/data/levels/Hover.oxw
r11052 r11199 3 3 description = "Level for Minigame Hover" 4 4 tags = "minigame" 5 screenshot = " emptylevel.png"5 screenshot = "hover.png" 6 6 /> 7 7 … … 20 20 <?lua 21 21 MAZE_NUM_CELLS = 10 22 MAZE_CELL_SIZE = 100 23 MAZE_CELL_HEIGHT = 30 22 MAZE_CELL_SIZE = 600 23 MAZE_CELL_HEIGHT = 180 24 MAZE_WALL_THICKNESS = 10 24 25 MAZE_SIZE = MAZE_NUM_CELLS*MAZE_CELL_SIZE 25 26 ?> 27 28 <!-- Shrink Pickup Representation --> 29 30 <Template name=smallshrinkpickupRepresentation> 31 <PickupRepresentation> 32 <spawner-representation> 33 <StaticEntity> 34 <attached> 35 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Sphere2" scale=0.5> 36 <attached> 37 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale=0.35 /> 38 </attached> 39 </Billboard> 40 </attached> 41 </StaticEntity> 42 </spawner-representation> 43 </PickupRepresentation> 44 </Template> 45 46 47 <Template name=smallshrinkpickup baseclass=ShrinkPickup> 48 <ShrinkPickup 49 representation = "smallshrinkpickup" 50 duration = 10.0 51 shrinkFactor = 2 52 activaionType = "immediate" 53 durationType = "continuous" 54 /> 55 </Template> 56 57 <!-- Speed Pickup Representation --> 58 59 <Template name=hugespeedpickupRepresentation> 60 <PickupRepresentation> 61 <spawner-representation> 62 <StaticEntity> 63 <attached> 64 <Billboard position="0,0,0" colour="0.99,0.96,0.52" material="Sphere2" scale=0.5> 65 <attached> 66 <Billboard position="0,0,0" colour="0.98,0.94,0.22" material="3arrowsup" scale=0.7 /> 67 </attached> 68 </Billboard> 69 </attached> 70 </StaticEntity> 71 </spawner-representation> 72 </PickupRepresentation> 73 </Template> 74 75 <Template name=hugespeedpickup baseclass=SpeedPickup> 76 <SpeedPickup 77 representation = "hugespeedpickup" 78 duration = 10.0 79 speedAdd = 0.0 80 SpeedMultiply = 5.0 81 activationType = "immediate" 82 durationType = "continuous" 83 /> 84 </Template> 85 86 <!-- Destroy Carrier Pickup Representation --> 87 88 <Template name=destroyhoverpickupRepresentation> 89 <PickupRepresentation> 90 <spawner-representation> 91 <StaticEntity> 92 <attached> 93 <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=0.5> 94 <attached> 95 <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Asterisk" scale=0.65 /> 96 </attached> 97 </Billboard> 98 </attached> 99 </StaticEntity> 100 </spawner-representation> 101 </PickupRepresentation> 102 </Template> 103 104 <Template name=destroyhoverpickup baseclass=MetaPickup> 105 <MetaPickup representation="destroyhover" metaType="destroyCarrier" /> 106 </Template> 107 108 <!-- Obstacle (crate) Template --> 109 110 <Template name=obstacle baseclass=Pawn> 111 <Pawn team=1 health=30 position="0,100,0" direction="0,-1,0" collisionType=dynamic mass=10000000000000 name=box RVName = "Box 4" > 112 <attached> 113 <Model position="0,0,0" mesh="crate.mesh" scale3D="15,15,15" /> 114 </attached> 115 <collisionShapes> 116 <BoxCollisionShape position="0,0,0" halfExtents="70,70,70" /> 117 </collisionShapes> 118 </Pawn> 119 </Template> 120 121 <!-- Ground Template --> 122 123 <Template name=ground baseclass=StaticEntity> 124 <StaticEntity position="0,0,0" direction="0,0,0" collisionType=static mass=100000000 friction=0.01 > 125 <attached> 126 <Model position="0,0,0" mesh="CubeGround.mesh" scale3D="300,20,300" /> 127 </attached> 128 <collisionShapes> 129 <BoxCollisionShape position="0,0,0" halfExtents="300,10,300" /> 130 </collisionShapes> 131 </StaticEntity> 132 </Template> 26 133 27 134 <Level … … 32 139 <Template link=lodtemplate_default /> 33 140 </templates> 141 34 142 <?lua include("includes/notifications.oxi") ?> 35 143 … … 37 145 ambientlight = "0.8, 0.8, 0.8" 38 146 skybox = "Orxonox/Starbox" 39 gravity = "0, - 200, 0"147 gravity = "0, -300, 0" 40 148 > 149 150 <PickupRepresentation 151 name = "destroyhover" 152 pickupName = "Destroy Hover Pickup" 153 pickupDescription = "destroys you." 154 spawnerTemplate = "destroyhoverpickupRepresentation" 155 inventoryRepresentation = "destroyHoverPickup" 156 /> 157 158 <PickupRepresentation 159 name = "hugespeedpickup" 160 pickupName = "Huge Speed Boost" 161 pickupDescription = "Multiplies Speed of the Ship by a huge amount." 162 spawnerTemplate = "hugespeedpickupRepresentation" 163 inventoryRepresentation = "HugeSpeed" 164 /> 165 166 <PickupRepresentation 167 name = "smallshrinkpickup" 168 pickupName = "Small Shrink" 169 pickupDescription = "Shrinks the ship by a small amount." 170 spawnerTemplate = "smallshrinkpickupRepresentation" 171 inventoryRepresentation = "SmallShrink" 172 /> 41 173 42 174 <StaticEntity position="0,0,0" collisionType="static"> … … 46 178 cellSize="<?lua print(MAZE_CELL_SIZE)?>" 47 179 cellHeight="<?lua print(MAZE_CELL_HEIGHT)?>" 180 wallThickness="<?lua print(MAZE_WALL_THICKNESS)?>" 181 obstacletemplate=obstacle 182 pickuptemplate=destroyhoverpickup 183 pickuprepresentationtemplate=destroyhoverpickupRepresentation 184 pickuptemplatespeed=hugespeedpickup 185 pickuprepresentationtemplatespeed=hugespeedpickupRepresentation 186 pickuptemplateshrink=smallshrinkpickup 187 pickuprepresentationtemplateshrink=smallshrinkpickupRepresentation 188 groundtemplate=ground 48 189 /> 49 <Model 50 position="<?lua print(MAZE_SIZE/2)?>,-16,<?lua print(MAZE_SIZE/2)?>" 51 scale3D="<?lua print(MAZE_SIZE/2)?>,16,<?lua print(MAZE_SIZE/2)?>" 52 mesh="CubeGround.mesh" 53 /> 190 54 191 </attached> 55 <collisionShapes> 56 <BoxCollisionShape 57 position="<?lua print(MAZE_SIZE/2)?>,<?lua print(MAZE_CELL_HEIGHT+1)?>,<?lua print(MAZE_SIZE/2)?>" 58 halfExtents="<?lua print(MAZE_SIZE/2)?>,1,<?lua print(MAZE_SIZE/2)?>" 59 /> 60 <BoxCollisionShape 61 position="<?lua print(MAZE_SIZE/2)?>,-1,<?lua print(MAZE_SIZE/2)?>" 62 halfExtents="<?lua print(MAZE_SIZE/2)?>,1,<?lua print(MAZE_SIZE/2)?>" 63 /> 64 </collisionShapes> 192 65 193 </StaticEntity> 66 194 … … 75 203 <SpawnPoint 76 204 team=0 77 position=" 50,20,50"78 lookat=" 100,20,100"205 position="300,120,300" 206 lookat="600,120,600" 79 207 spawnclass=HoverShip 80 208 pawndesign=spaceshiphover … … 83 211 </Scene> 84 212 </Level> 85 -
code/branches/presentationFS16/data/levels/emptyLevel.oxw
r11052 r11199 14 14 <?lua 15 15 include("templates/spaceshipEscort.oxt") 16 include("templates/spaceshipHover.oxt") 16 17 ?> 17 18 … … 29 30 <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/> 30 31 <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort /> 32 33 <SpaceShip position="0,0,0" lookat="0,0,0" > 34 35 <templates> 36 <Template link=spaceshiphover /> 37 </templates> 38 39 </SpaceShip> 31 40 32 41 </Scene> -
code/branches/presentationFS16/data/levels/includes/weaponSettingsHover.oxi
r11052 r11199 1 1 <weaponslots> 2 <WeaponSlot position="- 3,2,-3" />3 <WeaponSlot position=" 3,2,-3" />2 <WeaponSlot position="-10,2,-100" /> 3 <WeaponSlot position=" 10,2,-100" /> 4 4 </weaponslots> 5 5 <weaponsets> … … 14 14 </links> 15 15 <Weapon> 16 < IceGun mode=0 munitionpershot=0 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="LaserBeam2.mesh" />16 <HsW01 mode=0 munitionpershot=0 delay=0.125 speed=2000.0f damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1, 1,-50 " projectileMesh="LaserBeam2.mesh" /> 17 17 </Weapon> 18 18 <Weapon> 19 < IceGun mode=0 munitionpershot=0 delay=0 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="LaserBeam2.mesh" />19 <HsW01 mode=0 munitionpershot=0 delay=0.125 speed=2000.0f damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.8, 1,-50" projectileMesh="LaserBeam2.mesh" /> 20 20 </Weapon> 21 21 </WeaponPack> … … 27 27 </weaponpacks> 28 28 <munition> 29 < IceMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/>29 <LaserMunition initialmagazines=2 maxmagazines=2 munitionpermagazine=20/> 30 30 </munition> -
code/branches/presentationFS16/data/levels/templates/spaceshipHover.oxt
r11052 r11199 18 18 reloadwaittime = 0.5 19 19 20 primaryThrust = 200 21 auxilaryThrust = 3022 rotationThrust = 2520 primaryThrust = 2000 21 auxilaryThrust = 1 22 rotationThrust = 45 23 23 24 jumpBoost = 9024 jumpBoost = 450 25 25 26 26 lift = 1; 27 stallSpeed = 220;27 stallSpeed = 1400; 28 28 29 29 boostPower = 10 … … 33 33 34 34 collisionType = "dynamic" 35 mass = 100 35 mass = 1000000 36 36 linearDamping = 0.2 37 37 angularDamping = 0.9999999 … … 41 41 </engines> 42 42 <attached> 43 <Model position="0,0,- 20" mesh="hovership_body.mesh" scale="5" yaw=180/>44 <Model position="0,0,- 20" mesh="hovership_engine.mesh" scale="5" yaw=180/>45 <Model position="0,0,- 20" mesh="hovership_gun.mesh" scale="5" yaw=180/>43 <Model position="0,0,-120" mesh="hovership_body.mesh" scale="30" yaw=180/> 44 <Model position="0,0,-120" mesh="hovership_engine.mesh" scale="30" yaw=180/> 45 <Model position="0,0,-120" mesh="hovership_gun.mesh" scale="30" yaw=180/> 46 46 47 47 </attached> 48 48 <collisionShapes> 49 <BoxCollisionShape position="0,- 2 ,7" halfExtents="7, 4 ,30" />49 <BoxCollisionShape position="0,-12, 42" halfExtents="49, 24 ,180" /> 50 50 </collisionShapes> 51 51 <explosion> 52 52 <ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" /> 53 <ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" scale= 2 />53 <ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" scale=12 /> 54 54 <ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" /> 55 55 … … 69 69 <SpaceShip> 70 70 <camerapositions> 71 <CameraPosition position="0, 8, 5" drag=true mouselook=true />72 <CameraPosition position="0, 8,5" yaw="180" drag=true mouselook=true />71 <CameraPosition position="0, 48, 30" drag=true mouselook=true /> 72 <CameraPosition position="0, 48, 30" yaw="180" drag=true mouselook=true /> 73 73 </camerapositions> 74 74 </SpaceShip> … … 79 79 boostfactor = 2 80 80 81 speedfront = 9082 speedback = 4083 speedleftright = 4084 speedupdown = 4081 speedfront = 1400 82 speedback = 800 83 speedleftright = 700 84 speedupdown = 700 85 85 86 accelerationfront = 50087 accelerationbrake = 50088 accelerationback = 12589 accelerationleftright = 12586 accelerationfront = 1000 87 accelerationbrake = 1000 88 accelerationback = 250 89 accelerationleftright = 350 90 90 accelerationupdown = 125 91 91 > -
code/branches/presentationFS16/data/overlays/HoverHUD.oxo
r11052 r11199 39 39 iconmaterial = "Orxonox/BarIconHealth" 40 40 > 41 41 42 <BarColour position = 0.0 colour = "0.7,0.2,0.2" /> 42 43 <BarColour position = 0.5 colour = "0.7,0.7,0.2" /> 43 44 <BarColour position = 1.0 colour = "0.2,0.7,0.2" /> 44 45 </HUDHealthBar> 45 </OverlayGroup> 46 47 48 49 <OverlayText 50 position = "0.02, 0.08" 51 pickpoint = "0.0, 0.0" 52 font = "ShareTechMono" 53 textsize = 0.04 54 colour = "1.0, 1.0, 1.0, 1.0" 55 align = "left" 56 caption = "Total Flags: " 57 /> 58 59 <OverlayText 60 position = "0.02, 0.12" 61 pickpoint = "0.0, 0.0" 62 font = "ShareTechMono" 63 textsize = 0.04 64 colour = "1.0, 1.0, 1.0, 1.0" 65 align = "left" 66 caption = "Lives: " 67 /> 68 69 <OverlayText 70 position = "0.02, 0.16" 71 pickpoint = "0.0, 0.0" 72 font = "ShareTechMono" 73 textsize = 0.04 74 colour = "1.0, 1.0, 1.0, 1.0" 75 align = "left" 76 caption = "Level: " 77 /> 78 79 <TFlagsLivesLevelHUD 80 position = "0.14, 0.02" 81 pickpoint = "0.0, 0.0" 82 font = "ShareTechMono" 83 textsize = 0.04 84 colour = "1.0, 1.0, 1.0, 1.0" 85 align = "left" 86 showFlags = true 87 showLives = false 88 showLevel = false 89 levelUpgrade = false 90 91 /> 92 93 <TFlagsLivesLevelHUD 94 position = "0.14, 0.04" 95 pickpoint = "0.0, 0.0" 96 font = "ShareTechMono" 97 textsize = 0.04 98 colour = "1.0, 1.0, 1.0, 1.0" 99 align = "left" 100 showFlags = false 101 showLives = true 102 showLevel = false 103 levelUpgrade = false 104 105 /> 106 107 <TFlagsLivesLevelHUD 108 position = "0.14, 0.06" 109 pickpoint = "0.0, 0.0" 110 font = "ShareTechMono" 111 textsize = 0.04 112 colour = "1.0, 1.0, 1.0, 1.0" 113 align = "left" 114 showFlags = false 115 showLives = false 116 showLevel = true 117 levelUpgrade = false 118 119 /> 120 121 <TFlagsLivesLevelHUD 122 position = "0.3, 0.45" 123 pickpoint = "0.0, 0.0" 124 font = "ShareTechMono" 125 textsize = 0.04 126 colour = "1.0, 1.0, 1.0, 1.0" 127 align = "left" 128 showFlags = false 129 showLives = false 130 showLevel = false 131 levelUpgrade = true 132 133 /> 134 135 136 </OverlayGroup> 137 46 138 </Template> 139 140 141 142 -
code/branches/presentationFS16/src/modules/hover/CMakeLists.txt
r11035 r11199 8 8 FlagHUD.cc 9 9 MazeGenerator.cc 10 TFlagsLivesLevelHUD.cc 10 11 ) 11 12 … … 17 18 objects 18 19 overlays 20 pickup 19 21 SOURCE_FILES ${Hover_SRC_FILES} 20 22 ) -
code/branches/presentationFS16/src/modules/hover/Hover.cc
r11071 r11199 24 24 * Co-authors: 25 25 * Cyrill Burgener 26 * Tomer Gidron 26 27 * 27 28 */ … … 33 34 34 35 #include "Hover.h" 35 36 #include "chat/ChatManager.h" 36 37 #include "HoverOrigin.h" 37 38 #include "HoverWall.h" … … 39 40 #include "MazeGenerator.h" 40 41 #include "core/CoreIncludes.h" 42 #include "gamestates/GSLevel.h" 43 #include "HoverShip.h" 44 45 #include "pickup/PickupSpawner.h" 46 #include "pickup/Pickup.h" 41 47 42 48 namespace orxonox … … 51 57 this->numberOfFlags_ = 1; 52 58 this->firstTick_ = true; 59 level = 1; //start at level 1 60 flagsTaken = 0;// took 0 flags in the beginning 61 lives = 3; 62 63 numCells = 0; 64 cellSize = 0; 65 cellHeight = 0; 66 67 bLevelUpgradeHUD = false; 68 69 totFlags = 0; 53 70 54 71 this->setHUDTemplate("HoverHUD"); 55 } 56 57 void Hover::tick(float dt) 58 {59 SUPER(Hover, tick, dt);60 72 73 } 74 75 void Hover::start() 76 { 77 Gametype::start(); 61 78 if(this->firstTick_ && this->origin_) 62 79 { 63 80 this->firstTick_ = false; 64 81 65 int numCells = this->origin_->getNumCells(); 66 int cellSize = this->origin_->getCellSize(); 67 int cellHeight = this->origin_->getCellHeight(); 82 numCells = this->origin_->getNumCells(); 83 cellSize = this->origin_->getCellSize(); 84 cellHeight = this->origin_->getCellHeight(); 85 86 //TODO 87 //create boolean array/vector to assert that no two objects are placed in the same way 88 68 89 69 90 MazeGenerator generator(numCells); … … 81 102 } 82 103 104 105 //Ground 106 for(int i = 0; i<numCells; i++){ 107 for(int j = 0; j<numCells; j++){ 108 StaticEntity* groundCell = new StaticEntity(origin_->getContext()); 109 110 groundCell->addTemplate(origin_->getGroundTemplate()); 111 groundCell->setPosition(get3dCoordinates(i,j,-60)); 112 } 113 114 } 115 116 117 83 118 //Generate inner Walls according to levelcode 84 119 for(int y=0; y<numCells; y++){ 85 120 for(int x=0; x<numCells; x++){ 86 switch(levelcode[ y * numCells + x ]){ 121 switch(levelcode[ y * numCells + x ]) 122 { 87 123 case 1: (new HoverWall(origin_->getContext()))->init(x+1, numCells-y, cellSize, cellHeight, 1); 88 124 break; 89 125 case 3: (new HoverWall(origin_->getContext()))->init(x+1, numCells-y, cellSize, cellHeight, 1); 90 126 case 2: (new HoverWall(origin_->getContext()))->init(x+1, numCells-y, cellSize, cellHeight, 0); 91 default: break; 127 default: 128 break; 92 129 } 93 } 94 } 95 96 //Generate 5 flags randomly 97 for ( int i = 0; i < 5; i++ ) 98 { 99 HoverFlag* flag = new HoverFlag(origin_->getContext()); 100 flag->init(rand()%numCells, rand()%numCells, cellSize); 101 flags_.push_back(flag); 102 } 103 104 }//firsttick end 130 } 131 } 132 133 createFlags(); 134 135 //Generate 3 PickupSpawners randomly (destroy hover pickup) 136 for (int i = 0; i<3; i++) 137 { 138 PickupSpawner* pickupSpawner = new PickupSpawner(origin_->getContext()); 139 140 pickupSpawner->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 0.0f)); 141 pickupSpawner->setPickupTemplateName(origin_->getPickupTemplate()); 142 pickupSpawner->setMaxSpawnedItems(3); 143 pickupSpawner->setRespawnTime(30); 144 pickupSpawner->setTriggerDistance(40); 145 // Add pickup spawner to the pickup spawner list 146 pickupSpawners_.push_back(pickupSpawner); 147 } 148 149 //Generate 3 PickupSpawners randomly (speed pickup) 150 for (int i = 0; i<3; i++) 151 { 152 PickupSpawner* pickupSpawner = new PickupSpawner(origin_->getContext()); 153 154 pickupSpawner->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 0.0f)); 155 pickupSpawner->setPickupTemplateName(origin_->getPickupTemplateSpeed()); 156 pickupSpawner->setMaxSpawnedItems(3); 157 pickupSpawner->setRespawnTime(30); 158 pickupSpawner->setTriggerDistance(40); 159 // Add pickup spawner to the pickup spawner list 160 pickupSpawners_.push_back(pickupSpawner); 161 } 162 163 //Generate 3 PickupSpawners randomly (shrink pickup) 164 for (int i = 0; i<3; i++) 165 { 166 PickupSpawner* pickupSpawner = new PickupSpawner(origin_->getContext()); 167 168 pickupSpawner->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 0.0f)); 169 pickupSpawner->setPickupTemplateName(origin_->getPickupTemplateShrink()); 170 pickupSpawner->setMaxSpawnedItems(3); 171 pickupSpawner->setRespawnTime(30); 172 pickupSpawner->setTriggerDistance(40); 173 // Add pickup spawner to the pickup spawner list 174 pickupSpawners_.push_back(pickupSpawner); 175 } 176 177 //***************************************************************************** 178 179 //Generate destroyable crates randomly on field 180 181 for (int i = 0; i<10; i++){ 182 183 Pawn* crate = new Pawn(origin_->getContext()); 184 185 crate->addTemplate(origin_->getObstacleTemplate()); 186 crate->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 43.0f)); 187 188 189 } 190 191 192 193 194 //If no lives are left, end game 195 if(lives <= 0) 196 { 197 GSLevel::startMainMenu(); 198 } 199 200 } 201 } 202 203 204 // generate new Flags 205 void Hover::createFlags() 206 { 207 //TODO 208 //Generate flags randomly using bool array 209 210 //Generate 5 flags randomly on field 211 for ( int i = 0; i < 5; i++ ) 212 { 213 HoverFlag* flag = new HoverFlag(origin_->getContext()); 214 flag->init(rand()%numCells, rand()%numCells, cellSize); 215 flags_.push_back(flag); 216 217 218 219 if(flags_[i]->getPosition() == get3dCoordinates(0,0,-60)) 220 { 221 flags_[i]->destroyLater(); 222 flags_.erase(flags_.begin()+i); 223 } 224 } 225 226 } 227 228 void Hover::tick(float dt) 229 { 230 SUPER(Hover, tick, dt); 231 105 232 106 233 // Check if ship collided with one of the flags 107 for ( unsigned int i = 0; i < flags_.size(); i++ ){ 108 if(flags_[i]->getCollided()){ 234 for ( unsigned int i = 0; i < flags_.size(); i++ ) 235 { 236 if(flags_[i]->getCollided()) 237 { 109 238 flags_[i]->destroyLater(); 110 239 flags_.erase (flags_.begin()+i); 111 } 240 totFlags++; 241 if(flags_.size()<=0){ 242 //ChatManager::message("Level Up!"); 243 244 levelUp(); 245 } 246 } 247 112 248 } 113 249 numberOfFlags_ = flags_.size(); 250 251 if(lives <= 0){ 252 GSLevel::startMainMenu(); 253 } 254 } 255 256 //start new level - call to create new flags 257 void Hover::levelUp() 258 { 259 level++; 260 //increment lives after every 4 levels 261 if(level%4 == 0) 262 { 263 lives++; 264 } 265 createFlags(); 266 toggleShowLevel(); 267 showLevelTimer.setTimer(2.0f, false, createExecutor(createFunctor(&Hover::toggleShowLevel, this))); 268 269 //spawn one additional crate randomly 270 Pawn* crate = new Pawn(origin_->getContext()); 271 crate->addTemplate(origin_->getObstacleTemplate()); 272 crate->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 43.0f)); 273 274 } 275 276 Vector3 Hover::get3dCoordinates(int x, int y, float heightOffset) 277 { 278 return Vector3(x*cellSize*1.0f + cellSize/2, heightOffset, y*cellSize*1.0f + cellSize/2); 279 } 280 281 //if killed, subtract number of lives. If lives == 0, end game 282 void Hover::costLife() 283 { 284 lives--; 285 if (lives <= 0) 286 GSLevel::startMainMenu(); 114 287 } 115 288 } -
code/branches/presentationFS16/src/modules/hover/Hover.h
r11071 r11199 24 24 * Co-authors: 25 25 * Cyrill Burgener 26 * Tomer Gidron 26 27 * 27 28 */ … … 37 38 38 39 #include "HoverPrereqs.h" 40 #include "HoverShip.h" 39 41 40 42 #include <vector> … … 42 44 #include "gametypes/Gametype.h" 43 45 #include "HoverOrigin.h" 46 #include "pickup/PickupSpawner.h" 44 47 45 48 namespace orxonox … … 55 58 { this->origin_ = origin; } 56 59 60 void start(); 61 void createFlags(); 62 void levelUp(); 63 void endLevel(); 64 void costLife(); 65 57 66 inline int getNumberOfFlags() const 58 67 { return this->numberOfFlags_; } 59 68 69 virtual Vector3 get3dCoordinates(int x, int y, float heightOffset); 70 71 inline int getTotFlags() const 72 { return this->totFlags; } 73 74 inline int getLives() const 75 { return this->lives; } 76 77 inline int getLevel() const 78 { return this->level; } 79 80 bool bLevelUpgradeHUD; 81 60 82 private: 83 61 84 WeakPtr<HoverOrigin> origin_; 62 85 std::vector<HoverFlag*> flags_; 63 86 int numberOfFlags_; 64 87 bool firstTick_; 88 int level; 89 int lives; 90 int flagsTaken; 91 92 int cellSize; 93 int cellHeight; 94 int numCells; 95 96 int totFlags; 97 98 std::vector<PickupSpawner*> pickupSpawners_; 99 100 void toggleShowLevel(){bLevelUpgradeHUD = !bLevelUpgradeHUD;} 101 102 Timer showLevelTimer; 65 103 }; 66 104 } -
code/branches/presentationFS16/src/modules/hover/HoverFlag.cc
r11099 r11199 87 87 model_ = new Model(this->getContext()); 88 88 model_->setMeshSource("ss_flag_eu.mesh"); 89 model_->setScale3D(Vector3( 5, 5, 5));90 model_->setPosition(Vector3(xCoordinate*cellSize*1.0f + cellSize/2, 10.0f,yCoordinate*cellSize*1.0f + cellSize/2));89 model_->setScale3D(Vector3(30, 30, 30)); 90 model_->setPosition(Vector3(xCoordinate*cellSize*1.0f + cellSize/2,50.0f,yCoordinate*cellSize*1.0f + cellSize/2)); 91 91 92 92 this->attach(model_); 93 93 94 94 cs_ = new BoxCollisionShape(this->getContext()); 95 cs_->setHalfExtents(Vector3( 5, 5, 5));95 cs_->setHalfExtents(Vector3(30, 30, 30)); 96 96 cs_->setPosition(Vector3(xCoordinate*cellSize*1.0f + cellSize/2,0.0f,yCoordinate*cellSize*1.0f + cellSize/2)); 97 97 -
code/branches/presentationFS16/src/modules/hover/HoverOrigin.cc
r11071 r11199 23 23 * Manuel Meier 24 24 * Co-authors: 25 * ...25 * Tomer Gidron 26 26 * 27 27 */ … … 45 45 RegisterObject(HoverOrigin); 46 46 checkGametype(); 47 48 //Initialization of variables (not really needed) 49 50 pickupTemplate_ = ""; 51 pickupRepresentationTemplate_ = ""; 52 53 pickupTemplateSpeed_ = ""; 54 pickupRepresentationTemplateSpeed_ = ""; 55 56 57 pickupTemplateShrink_ = ""; 58 pickupRepresentationTemplateShrink_ = ""; 47 59 } 48 60 … … 54 66 XMLPortParam(HoverOrigin, "cellSize", setCellSize, getCellSize, xmlelement, mode); 55 67 XMLPortParam(HoverOrigin, "cellHeight", setCellHeight, getCellHeight, xmlelement, mode); 68 XMLPortParam(HoverOrigin, "wallThickness", setWallThickness, getWallThickness, xmlelement, mode); 69 XMLPortParam(HoverOrigin, "pickuptemplate", setPickupTemplate, getPickupTemplate, xmlelement, mode); 70 XMLPortParam(HoverOrigin, "pickuprepresentationtemplate", setPickupRepresentationTemplate, getPickupRepresentationTemplate, xmlelement, mode); 71 XMLPortParam(HoverOrigin, "pickuptemplatespeed", setPickupTemplateSpeed, getPickupTemplateSpeed, xmlelement, mode); 72 XMLPortParam(HoverOrigin, "pickuprepresentationtemplatespeed", setPickupRepresentationTemplateSpeed, getPickupRepresentationTemplateSpeed, xmlelement, mode); 73 XMLPortParam(HoverOrigin, "obstacletemplate", setObstacleTemplate, getObstacleTemplate, xmlelement, mode); 74 XMLPortParam(HoverOrigin, "pickuptemplateshrink", setPickupTemplateShrink, getPickupTemplateShrink, xmlelement, mode); 75 XMLPortParam(HoverOrigin, "pickuprepresentationtemplateshrink", setPickupRepresentationTemplateShrink, getPickupRepresentationTemplateShrink, xmlelement, mode); 76 XMLPortParam(HoverOrigin, "groundtemplate", setGroundTemplate, getGroundTemplate, xmlelement, mode); 56 77 } 78 57 79 58 80 void HoverOrigin::checkGametype() -
code/branches/presentationFS16/src/modules/hover/HoverOrigin.h
r11099 r11199 23 23 * Manuel Meier 24 24 * Co-authors: 25 * ...25 * Tomer Gidron 26 26 * 27 27 */ … … 66 66 { return this->cellHeight_; } 67 67 68 inline void setWallTickness(int wallTickness) 69 { this->wallTickness_ = wallTickness; } 70 inline int getWallTickness() const 71 { return this->wallTickness_; } 72 73 //pickup template set and get for destroy hover pickup 74 75 inline void setPickupTemplate(std::string pickupTemplate) 76 { this->pickupTemplate_ = pickupTemplate; } 77 inline std::string getPickupTemplate() const 78 { return this->pickupTemplate_; } 79 80 inline void setPickupRepresentationTemplate(std::string pickupRepresenationaTemplate) 81 { this->pickupRepresentationTemplate_ = pickupRepresenationaTemplate; } 82 inline std::string getPickupRepresentationTemplate() const 83 { return this->pickupRepresentationTemplate_; } 84 85 //pickup template get and set for damage hover pickup 86 87 inline void setPickupTemplateSpeed(std::string pickupTemplateSpeed) 88 { this->pickupTemplateSpeed_ = pickupTemplateSpeed; } 89 inline std::string getPickupTemplateSpeed() const 90 { return this->pickupTemplateSpeed_; } 91 92 inline void setPickupRepresentationTemplateSpeed(std::string pickupRepresenationaTemplateSpeed) 93 { this->pickupRepresentationTemplateSpeed_ = pickupRepresenationaTemplateSpeed; } 94 inline std::string getPickupRepresentationTemplateSpeed() const 95 { return this->pickupRepresentationTemplateSpeed_; } 96 97 98 //pickup template get and set for shrink hover pickup 99 100 inline void setPickupTemplateShrink(std::string pickupTemplateShrink) 101 { this->pickupTemplateShrink_ = pickupTemplateShrink; } 102 inline std::string getPickupTemplateShrink() const 103 { return this->pickupTemplateShrink_; } 104 105 inline void setPickupRepresentationTemplateShrink(std::string pickupRepresenationaTemplateShrink) 106 { this->pickupRepresentationTemplateShrink_ = pickupRepresenationaTemplateShrink; } 107 inline std::string getPickupRepresentationTemplateShrink() const 108 { return this->pickupRepresentationTemplateShrink_; } 109 110 //get and set for obstacle template 111 112 inline void setObstacleTemplate(std::string obstacleTemplate) 113 { this->obstacleTemplate_ = obstacleTemplate; } 114 inline std::string getObstacleTemplate() const 115 { return this->obstacleTemplate_; } 116 117 //get and set for ground template 118 119 inline void setGroundTemplate(std::string groundTemplate) 120 { this->groundTemplate_ = groundTemplate; } 121 inline std::string getGroundTemplate() const 122 { return this->groundTemplate_; } 123 68 124 private: 69 125 void checkGametype(); 126 70 127 71 128 int numCells_; 72 129 int cellSize_; 73 130 int cellHeight_; 131 int wallThickness_; 132 133 // Tempaltes for the destroy hover pickup 134 std::string pickupTemplate_; 135 std::string pickupRepresentationTemplate_; 136 137 // Tempaltes for the damage hover pickup 138 std::string pickupTemplateSpeed_; 139 std::string pickupRepresentationTemplateSpeed_; 140 141 // Tempaltes for the shrink hover pickup 142 std::string pickupTemplateShrink_; 143 std::string pickupRepresentationTemplateShrink_; 144 145 //Template for crate obstacle 146 std::string obstacleTemplate_; 147 148 //Template for ground cell 149 std::string groundTemplate_; 74 150 }; 75 151 } -
code/branches/presentationFS16/src/modules/hover/HoverShip.cc
r11041 r11199 33 33 #include "core/CoreIncludes.h" 34 34 #include "core/XMLPort.h" 35 #include "Hover.h" 36 //#include "NewHumanController.h" 35 37 36 38 #include <BulletCollision/NarrowPhaseCollision/btManifoldPoint.h> … … 112 114 if (bBoost && this->isFloor_) 113 115 { 116 114 117 this->setVelocity( 115 118 this->getVelocity().x, … … 120 123 } 121 124 } 125 126 Hover* HoverShip::getGame() 127 { 128 if (game == nullptr) 129 { 130 for (Hover* hover : ObjectList<Hover>()) 131 game = hover; 132 } 133 return game; 134 } 135 136 void HoverShip::death() 137 { 138 getGame()->costLife(); 139 SpaceShip::death(); 140 } 122 141 } -
code/branches/presentationFS16/src/modules/hover/HoverShip.h
r11071 r11199 34 34 35 35 #include "HoverPrereqs.h" 36 #include "Hover.h" 36 37 37 38 #include "worldentities/pawns/SpaceShip.h" … … 69 70 virtual void boost(bool bBoost) override; 70 71 72 protected: 73 virtual void death() override; 74 71 75 private: 76 Hover* getGame(); 77 WeakPtr<Hover> game; 72 78 float jumpBoost_; 73 79 bool isFloor_; -
code/branches/presentationFS16/src/modules/invader/Invader.cc
r11083 r11199 71 71 // spawn enemy every 3.5 seconds 72 72 enemySpawnTimer.setTimer(3.5f, true, createExecutor(createFunctor(&Invader::spawnEnemy, this))); 73 comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&Invader::comboControll, this)));73 comboTimer.setTimer(3.0f, false, createExecutor(createFunctor(&Invader::comboControll, this))); 74 74 this->setHUDTemplate("InvaderHUD"); 75 75 } -
code/branches/presentationFS16/src/modules/pickup/PickupSpawner.h
r11071 r11199 114 114 {return this->pickupTemplate_; } 115 115 116 117 void setPickupTemplateName(const std::string& name); 118 void setPickupTemplate(Template* temp); 119 120 121 /** 122 @brief Set the distance in which to trigger. 123 @param value The new distance in which to trigger. 124 */ 125 inline void setTriggerDistance(float value) 126 { this->triggerDistance_ = value; } 127 /** 128 @brief Set the time to respawn. 129 @param time New time after which this gets re-actived. 130 */ 131 inline void setRespawnTime(float time) 132 { this->respawnTime_ = time; } 133 134 void setMaxSpawnedItems(int items); //!< Sets the maximum number of spawned items. 135 116 136 private: 117 137 void initialize(void); … … 131 151 { this->blocked_.insert(std::pair<PickupCarrier*, std::time_t>(carrier, std::time(0)+time)); } 132 152 133 /** 134 @brief Set the distance in which to trigger. 135 @param value The new distance in which to trigger. 136 */ 137 inline void setTriggerDistance(float value) 138 { this->triggerDistance_ = value; } 139 /** 140 @brief Set the time to respawn. 141 @param time New time after which this gets re-actived. 142 */ 143 inline void setRespawnTime(float time) 144 { this->respawnTime_ = time; } 153 154 145 155 146 void setMaxSpawnedItems(int items); //!< Sets the maximum number of spawned items.147 148 void setPickupTemplateName(const std::string& name);149 void setPickupTemplate(Template* temp);150 156 151 157 Pickupable* createPickup(void); //!< Creates a new Pickupable. -
code/branches/presentationFS16/src/modules/weapons/weaponmodes/HsW01.cc
r11108 r11199 85 85 XMLPortParam(HsW01, "projectileMesh", setMesh, getMesh, xmlelement, mode); 86 86 XMLPortParam(HsW01, "sound", setSound, getSound, xmlelement, mode); 87 XMLPortParam(HsW01, "speed", setSpeed, getSpeed, xmlelement, mode); 87 88 } 88 89 -
code/branches/presentationFS16/src/modules/weapons/weaponmodes/HsW01.h
r11099 r11199 112 112 void muzzleflash(); 113 113 114 /** 115 @brief Set the firing speed. 116 @param speed The speed of the shot 117 */ 118 119 void setSpeed(const float speed) 120 { this->speed_ = speed; } 121 122 /** 123 @brief Get the firing speed. 124 @return Returns the speed of the shot 125 */ 126 127 const float getSpeed() const 128 { return this->speed_; } 129 114 130 std::string material_; //!< The material. 115 131 std::string mesh_; //!< The mesh.
Note: See TracChangeset
for help on using the changeset viewer.