Changeset 10961
- Timestamp:
- Dec 9, 2015, 2:45:58 PM (9 years ago)
- Location:
- code/branches/presentationHS15
- Files:
-
- 3 deleted
- 127 edited
- 22 copied
Legend:
- Unmodified
- Added
- Removed
-
code/branches/presentationHS15
- Property svn:mergeinfo changed
/code/branches/fabienHS15 (added) merged: 10685,10688,10692,10713-10715,10721,10724,10739,10746,10791,10794-10795,10814,10842,10878
- Property svn:mergeinfo changed
-
code/branches/presentationHS15/data/gui/layouts/InGameMenu.layout
r7801 r10961 9 9 <Property Name="Text" Value="Return to Game" /> 10 10 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 11 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0. 3625,0},{0.6,0},{0.4125,0}}" />11 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.2875,0},{0.6,0},{0.3375,0}}" /> 12 12 <Property Name="Alpha" Value="0.9" /> 13 13 <Event Name="Clicked" Function="InGameMenu.button_return_clicked"/> 14 14 </Window> 15 <Window Type="MenuWidgets/Button" Name="orxonox/InGameMenu_ReloadLevelButton" > 16 <Property Name="Text" Value="Reload level" /> 17 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 18 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.3625,0},{0.6,0},{0.4125,0}}" /> 19 <Property Name="Alpha" Value="0.9" /> 20 <Event Name="Clicked" Function="InGameMenu.button_reloadLevel_clicked"/> 21 </Window> 15 22 <Window Type="MenuWidgets/Button" Name="orxonox/InGameMenu_MainMenuButton" > 16 23 <Property Name="Text" Value="Main Menu" /> 17 24 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 18 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.4 625,0},{0.6,0},{0.5125,0}}" />25 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.4375,0},{0.6,0},{0.4875,0}}" /> 19 26 <Property Name="Alpha" Value="0.9" /> 20 27 <Event Name="Clicked" Function="InGameMenu.button_mainmenu_clicked"/> … … 23 30 <Property Name="Text" Value="Settings" /> 24 31 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 25 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.5 625,0},{0.6,0},{0.6125,0}}" />32 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.5125,0},{0.6,0},{0.5625,0}}" /> 26 33 <Property Name="Alpha" Value="0.9" /> 27 34 <Event Name="Clicked" Function="InGameMenu.button_settings_clicked"/> … … 30 37 <Property Name="Text" Value="Quit" /> 31 38 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 32 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0. 6625,0},{0.6,0},{0.7125,0}}" />39 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.5875,0},{0.6,0},{0.6375,0}}" /> 33 40 <Property Name="Alpha" Value="0.9" /> 34 41 <Event Name="Clicked" Function="InGameMenu.button_quit_clicked"/> -
code/branches/presentationHS15/data/gui/scripts/InGameMenu.lua
r9016 r10961 7 7 P.multiplayerMode = "startClient" 8 8 9 --button are arranged in a 4x1 matrix, the left lower item is nil9 --button are arranged in a 5x1 matrix, the left lower item is nil 10 10 P:setButton(1, 1, { 11 11 ["button"] = winMgr:getWindow("orxonox/InGameMenu_ReturnButton"), … … 14 14 15 15 P:setButton(2, 1, { 16 ["button"] = winMgr:getWindow("orxonox/InGameMenu_ReloadLevelButton"), 17 ["callback"] = P.button_reloadLevel_clicked 18 }) 19 20 P:setButton(3, 1, { 16 21 ["button"] = winMgr:getWindow("orxonox/InGameMenu_MainMenuButton"), 17 22 ["callback"] = P.button_mainmenu_clicked 18 23 }) 19 24 20 P:setButton( 3, 1, {25 P:setButton(4, 1, { 21 26 ["button"] = winMgr:getWindow("orxonox/InGameMenu_SettingsButton"), 22 27 ["callback"] = P.button_settings_clicked 23 28 }) 24 29 25 P:setButton( 4, 1, {30 P:setButton(5, 1, { 26 31 ["button"] = winMgr:getWindow("orxonox/InGameMenu_QuitButton"), 27 32 ["callback"] = P.button_quit_clicked … … 54 59 end 55 60 61 function P.button_reloadLevel_clicked(e) 62 hideMenuSheet("InGameMenu") 63 orxonox.execute("reloadLevel") 64 end 65 56 66 function P.button_return_clicked(e) 57 67 hideMenuSheet("InGameMenu") -
code/branches/presentationHS15/data/levels/FPS_Level_HS14.oxw
r10262 r10961 67 67 maxshieldhealth = "50" 68 68 shieldabsorption = "0.8" 69 reloadrate= "100"70 reloadwaittime= "0.1"69 shieldrechargerate = "100" 70 shieldrechargewaittime = "0.1" 71 71 name = "Tanis1" 72 72 radarname = "Light Destroyer" > … … 197 197 maxshieldhealth = "200" 198 198 shieldabsorption = "0.8" 199 reloadrate= "1"200 reloadwaittime= "1"199 shieldrechargerate = "1" 200 shieldrechargewaittime = "1" 201 201 name = "Tanis0" 202 202 radarname = "Tanis big ship" > … … 216 216 maxshieldhealth = "50" 217 217 shieldabsorption = "0.8" 218 reloadrate= "1"219 reloadwaittime= "1"218 shieldrechargerate = "1" 219 shieldrechargewaittime = "1" 220 220 name = "Tanis0" 221 221 radarname = "Pirate1" > … … 239 239 maxshieldhealth = "50" 240 240 shieldabsorption = "0.8" 241 reloadrate= "1"242 reloadwaittime= "1"241 shieldrechargerate = "1" 242 shieldrechargewaittime = "1" 243 243 name = "Tanis0" 244 244 radarname = "Pirate2" > -
code/branches/presentationHS15/data/levels/iJohnVane_TriptoArea51.oxw
r10274 r10961 169 169 maxshieldhealth = "120" 170 170 shieldabsorption = "0.8" 171 reloadrate= "1"172 reloadwaittime= "1"171 shieldrechargerate = "1" 172 shieldrechargewaittime = "1" 173 173 name = "cruiser" 174 174 radarname = "Spacecruiser" > -
code/branches/presentationHS15/data/levels/includes/invaderWeapon.oxi
r9943 r10961 7 7 <WeaponSet firemode=1 /> 8 8 </weaponsets> 9 <weapon s>9 <weaponpacks> 10 10 <WeaponPack> 11 11 <links> … … 25 25 </links> 26 26 </WeaponPack> 27 </weapons> 27 </weaponpacks> 28 <munition> 29 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=0.5/> 30 </munition> -
code/branches/presentationHS15/data/levels/includes/invaderWeaponEnemy.oxi
r9943 r10961 7 7 <WeaponSet firemode=1 /> 8 8 </weaponsets> 9 <weapon s>9 <weaponpacks> 10 10 <WeaponPack> 11 11 <links> … … 25 25 </links> 26 26 </WeaponPack> 27 </weapons> 27 </weaponpacks> 28 <munition> 29 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=0.5/> 30 </munition> -
code/branches/presentationHS15/data/levels/includes/pickups.oxi
r9348 r10961 78 78 /> 79 79 80 <PickupRepresentation 81 name = "destroy" 82 pickupName = "Destroy Pickup" 83 pickupDescription = "Destroy all pickups you have." 84 spawnerTemplate = "destroypickupRepresentation" 85 inventoryRepresentation = "detroyPickup" 86 /> 87 88 <PickupRepresentation 89 name = "destroycarrier" 90 pickupName = "Destroy Carrier Pickup" 91 pickupDescription = "destroys you." 92 spawnerTemplate = "destroycarrierpickupRepresentation" 93 inventoryRepresentation = "destroyCarrierPickup" 94 /> 95 80 96 <!-- Speed pickups --> 81 97 … … 138 154 /> 139 155 156 <!-- Munition pickups --> 157 158 <PickupRepresentation 159 name = "smallmunitionpickup" 160 pickupName = "Small munition" 161 pickupDescription = "Gives a small amount of munition." 162 spawnerTemplate = "smallmunitionpickupRepresentation" 163 inventoryRepresentation = "SmallMunition" 164 /> 165 166 <PickupRepresentation 167 name = "mediummunitionpickup" 168 pickupName = "Medium munition" 169 pickupDescription = "Gives a medium amount of munition." 170 spawnerTemplate = "mediummunitionpickupRepresentation" 171 inventoryRepresentation = "MediumMunition" 172 /> 173 174 <PickupRepresentation 175 name = "hugemunitionpickup" 176 pickupName = "Huge munition" 177 pickupDescription = "Gives a huge amount of munition." 178 spawnerTemplate = "hugemunitionpickupRepresentation" 179 inventoryRepresentation = "HugeMunition" 180 /> 181 140 182 <!-- Pickup Collection pickups --> 141 183 … … 175 217 176 218 <PickupRepresentation 177 name = " largedamageboostpickup"178 pickupName = " Large DamageBoost Pickup"219 name = "hugedamageboostpickup" 220 pickupName = "Huge DamageBoost Pickup" 179 221 pickupDescription = "Multiplies the ship damage with 7." 180 spawnerTemplate = " largedamageboostpickupRepresentation"181 inventoryRepresentation = " LargeDamageBoost"222 spawnerTemplate = "hugedamageboostpickupRepresentation" 223 inventoryRepresentation = "HugeDamageBoost" 182 224 /> 183 225 … … 207 249 inventoryRepresentation = "HugeShrink" 208 250 /> 251 252 <!-- Boost Pickup --> 253 254 <PickupRepresentation 255 name = "smallboostpickup" 256 pickupName = "Small Boost" 257 pickupDescription = "Restores the boost by a bit" 258 spawnerTemplate = "smallboostpickupRepresentation" 259 inventoryRepresentation = "SmallBoost" 260 /> 261 262 <PickupRepresentation 263 name = "mediumboostpickup" 264 pickupName = "Medium Boost" 265 pickupDescription = "Restores the boost" 266 spawnerTemplate = "mediumboostpickupRepresentation" 267 inventoryRepresentation = "MediumBoost" 268 /> 269 270 <PickupRepresentation 271 name = "hugeboostpickup" 272 pickupName = "Huge Boost" 273 pickupDescription = "Restores the boost considerably" 274 spawnerTemplate = "hugeboostpickupRepresentation" 275 inventoryRepresentation = "HugeBoost" 276 /> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsAssff.oxi
r10677 r10961 10 10 <WeaponSet firemode=3 /> 11 11 </weaponsets> 12 <weapon s>12 <weaponpacks> 13 13 <WeaponPack> 14 14 <links> … … 24 24 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-76" yaw="-90" position="-1.5,1,0.3" scale=0.6 /> 25 25 </attached> 26 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />27 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />26 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" /> 27 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" /> 28 28 <LightningGun mode=1 munitionpershot=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 /> 29 29 </Weapon> … … 34 34 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-104" yaw="-90" position="0,1.3,0.3" scale=0.6 /> 35 35 </attached> 36 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />37 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />36 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" /> 37 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" /> 38 38 <LightningGun mode=1 munitionpershot=1 muzzleoffset="0,0,0" damage=23 /> 39 39 </Weapon> 40 40 <Weapon> 41 41 <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 /> 42 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />42 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 fuel=8 /> 43 43 </Weapon> 44 44 </WeaponPack> 45 </weapons> 45 </weaponpacks> 46 <munition> 47 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=2 replenishinterval=7.5/> 48 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 49 <RocketMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 50 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsAssff2.oxi
r10677 r10961 9 9 <WeaponSet firemode=2 /> 10 10 <WeaponSet firemode=3 /> 11 </weaponsets> 12 <weapon s>11 </weaponsets> 12 <weaponpacks> 13 13 <WeaponPack> 14 14 <links> … … 23 23 <BlinkingBillboard position="-1.9, -.5, -5.5" material="PE/lensflare" colour="0.128, 0.28, 1" amplitude=0.25 frequency=16 quadratic=0 /> 24 24 </attached> 25 <HsW01 mode=0 munitionpershot= 0delay=0.125 healthamage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6,1.3,-2.0" />26 <HsW01 mode=0 munitionpershot= 0delay=0 healthdamage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6,1.3,-2.0" />25 <HsW01 mode=0 munitionpershot=1 delay=0.125 healthamage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6,1.3,-2.0" /> 26 <HsW01 mode=0 munitionpershot=1 delay=0 healthdamage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6,1.3,-2.0" /> 27 27 <LightningGun mode=1 munitionpershot=1 muzzleoffset="0,0,0" shielddamage=23 /> 28 28 </Weapon> … … 32 32 <BlinkingBillboard position="1.9, -.5, -5.5" material="PE/lensflare" colour="0.128, 0.28, 1" amplitude=0.25 frequency=16 quadratic=0 /> 33 33 </attached> 34 <HsW01 mode=0 munitionpershot= 0delay=0 healthdamage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6,1.3,-2.0" />35 <HsW01 mode=0 munitionpershot= 0delay=0.125 healthdamage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1,1.6,-2.0" />34 <HsW01 mode=0 munitionpershot=1 delay=0 healthdamage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6,1.3,-2.0" /> 35 <HsW01 mode=0 munitionpershot=1 delay=0.125 healthdamage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1,1.6,-2.0" /> 36 36 <LightningGun mode=1 munitionpershot=1 muzzleoffset="0,0,0" shielddamage=23 /> 37 37 </Weapon> 38 38 <Weapon> 39 39 <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=50 /> 40 <RocketFire mode=3 muzzleoffset="0,0,0" damage=100 />40 <RocketFire mode=3 muzzleoffset="0,0,0" damage=100 fuel=10 /> 41 41 </Weapon> 42 42 </WeaponPack> 43 </weapons> 43 </weaponpacks> 44 <munition> 45 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 46 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 47 <RocketMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 48 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsCollateral.oxi
r9664 r10961 10 10 <WeaponSet firemode=3 /> 11 11 </weaponsets> 12 <weapon s>12 <weaponpacks> 13 13 <WeaponPack> 14 14 <links> … … 25 25 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="90" yaw="-90" position="-1.5, 1, -0.3" scale=0.6 /> <!-- MACHINE GUN --> 26 26 </attached> 27 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />28 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />29 <LightningGun mode=1 mu zzleoffset="0,0,0" damage=3.14159 shielddamage=20 />27 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" /> 28 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" /> 29 <LightningGun mode=1 munitionpershot=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 /> 30 30 </Weapon> 31 31 … … 36 36 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="90" yaw="-90" position="1.8, 1, -0.3" scale=0.6 /> <!-- MACHINE GUN --> 37 37 </attached> 38 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />39 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />38 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" /> 39 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" /> 40 40 <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 /> 41 41 </Weapon> 42 42 <Weapon> 43 43 <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 /> 44 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />44 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 fuel=10 /> 45 45 </Weapon> 46 46 </WeaponPack> 47 </weapons> 47 </weaponpacks> 48 <munition> 49 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 50 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 51 <RocketMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 52 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsEscort.oxi
r9763 r10961 7 7 <WeaponSet firemode=1 /> 8 8 </weaponsets> 9 <weapon s>9 <weaponpacks> 10 10 <WeaponPack> 11 11 <links> … … 14 14 </links> 15 15 <Weapon> 16 <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="LaserBeam2.mesh" /> 17 <!--HsW01 mode=0 munitionpershot=0 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" projectileMesh="LaserBeam2.mesh" /--> 16 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="LaserBeam2.mesh" /> 18 17 </Weapon> 19 18 <Weapon> 20 <HsW01 mode=0 munitionpershot=0 delay=0 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="LaserBeam2.mesh" /> 21 <!--HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" projectileMesh="LaserBeam2.mesh" /--> 19 <HsW01 mode=0 munitionpershot=1 delay=0 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="LaserBeam2.mesh" /> 22 20 </Weapon> 23 21 </WeaponPack> … … 27 25 </links> 28 26 </WeaponPack> 29 </weapons> 27 </weaponpacks> 28 <munition> 29 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 30 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsFPS.oxi
r9348 r10961 11 11 <WeaponSet firemode=1 /> 12 12 </weaponsets> 13 <weapon s>13 <weaponpacks> 14 14 <WeaponPack firemode=0> 15 15 <links> … … 49 49 /--> 50 50 </WeaponPack> 51 </weapons> 51 </weaponpacks> 52 <munition> 53 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=5 replenishamount=1 replenishinterval=7.5/> 54 <LightningMunition initialmagazines=2 maxmagazines=2 munitionpermagazine=8 /> 55 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsFPS_HS14.oxi
r10262 r10961 11 11 <WeaponSet firemode=1 /> 12 12 </weaponsets> 13 <weapon s>13 <weaponpacks> 14 14 <WeaponPack firemode=0> 15 15 <links> … … 49 49 /--> 50 50 </WeaponPack> 51 </weapons> 51 </weaponpacks> 52 <munition> 53 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=5 replenishamount=1 replenishinterval=7.5/> 54 <LightningMunition initialmagazines=2 maxmagazines=2 munitionpermagazine=8 /> 55 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsFS15.oxi
r10622 r10961 12 12 <WeaponSet firemode=4 /> 13 13 </weaponsets> 14 <weapon s>14 <weaponpacks> 15 15 <WeaponPack> 16 16 <links> … … 38 38 <GravityBombFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 /> 39 39 <RocketFireOld mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 /> 40 <RocketFire mode=4 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />40 <RocketFire mode=4 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 fuel=10 /> 41 41 </Weapon> 42 42 </WeaponPack> … … 49 49 </Weapon--> 50 50 </WeaponPack> 51 </weapons> 51 </weaponpacks> 52 <munition> 53 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 54 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 55 <RocketMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 56 <GravityBombMunition initialmagazines=3 maxmagazines=3 munitionpermagazine=1 /> 57 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsGhost.oxi
r8857 r10961 11 11 <WeaponSet firemode=2 /> 12 12 </weaponsets> 13 <weapon s>13 <weaponpacks> 14 14 <WeaponPack> 15 15 <links> … … 19 19 </links> 20 20 <Weapon> 21 <HsW01 mode=0 munitionpershot= 0healthdamage=3.14159 delay=0 material="Flares/point_lensflare" />22 <HsW01 mode=0 munitionpershot= 0healthdamage=3.14159 delay=0.125 material="Flares/point_lensflare" muzzleoffset=" 0.5,0.6,1.7" />21 <HsW01 mode=0 munitionpershot=1 healthdamage=3.14159 delay=0 material="Flares/point_lensflare" /> 22 <HsW01 mode=0 munitionpershot=1 healthdamage=3.14159 delay=0.125 material="Flares/point_lensflare" muzzleoffset=" 0.5,0.6,1.7" /> 23 23 <LightningGun mode=1 muzzleoffset="0,0,0" damage=30 shielddamage=10 /> 24 24 </Weapon> 25 25 <Weapon> 26 <HsW01 mode=0 munitionpershot= 0damage=3.14159 delay=0 material="Flares/point_lensflare" />27 <HsW01 mode=0 munitionpershot= 0damage=3.14159 delay=0.125 material="Flares/point_lensflare" muzzleoffset="-0.5,0.6,1.7" />26 <HsW01 mode=0 munitionpershot=1 damage=3.14159 delay=0 material="Flares/point_lensflare" /> 27 <HsW01 mode=0 munitionpershot=1 damage=3.14159 delay=0.125 material="Flares/point_lensflare" muzzleoffset="-0.5,0.6,1.7" /> 28 28 <LightningGun mode=1 muzzleoffset="0,0,0" damage=30 shielddamage=10 /> 29 29 </Weapon> 30 30 <Weapon> 31 <SimpleRocketFire mode=2 mu zzleoffset="0,0,0" damage=50 />31 <SimpleRocketFire mode=2 munitionpershot=1 muzzleoffset="0,0,0" damage=50 /> 32 32 </Weapon> 33 33 <Weapon> 34 <SimpleRocketFire mode=2 mu zzleoffset="0,0,0" damage=50 delay=0.1 />34 <SimpleRocketFire mode=2 munitionpershot=1 muzzleoffset="0,0,0" damage=50 delay=0.1 /> 35 35 </Weapon> 36 36 </WeaponPack> 37 </weapons> 37 </weaponpacks> 38 <munition> 39 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 40 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 41 <RocketMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 42 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsH2.oxi
r7679 r10961 8 8 <WeaponSet firemode=1 /> 9 9 </weaponsets> 10 <weapon s>10 <weaponpacks> 11 11 <WeaponPack> 12 12 <links> … … 18 18 <Model mesh="hs-w01s.mesh" roll="180" position="0.1, 0.0, 0.0" scale=2 /> 19 19 </attached> 20 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.8, 0.9,-4" />21 <HsW01 mode=0 munitionpershot= 0delay=0 damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.8, 0.9,-4" />20 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.8, 0.9,-4" /> 21 <HsW01 mode=0 munitionpershot=1 delay=0 damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.8, 0.9,-4" /> 22 22 </Weapon> 23 23 <Weapon> … … 26 26 <Model mesh="hs-w01s.mesh" roll="180" position="-0.1, 0.0, 0.0" scale=2 /> 27 27 </attached> 28 <HsW01 mode=0 munitionpershot= 0delay=0 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.8, 0.9, -4.0" />29 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.8, 0.9, -4.0" />28 <HsW01 mode=0 munitionpershot=1 delay=0 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.8, 0.9, -4.0" /> 29 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.8, 0.9, -4.0" /> 30 30 </Weapon> 31 31 </WeaponPack> … … 42 42 </Weapon> 43 43 </WeaponPack> 44 </weapons> 44 </weaponpacks> 45 <munition> 46 <LaserMunition initialmagazines=10 maxmagazines=10 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 47 </munition> 45 48 -
code/branches/presentationHS15/data/levels/includes/weaponSettingsHXY.oxi
r8755 r10961 7 7 <WeaponSet firemode=1 /> 8 8 </weaponsets> 9 <weapon s>9 <weaponpacks> 10 10 <WeaponPack> 11 11 <links> … … 24 24 </Weapon> 25 25 </WeaponPack> 26 </weapons> 26 </weaponpacks> 27 <munition> 28 <LaserMunition initialmagazines=10 maxmagazines=10 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 29 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 30 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsHeartAttack.oxi
r10622 r10961 11 11 <WeaponSet firemode=3 /> 12 12 </weaponsets> 13 <weapon s>13 <weaponpacks> 14 14 <WeaponPack> 15 15 <links> … … 20 20 </links> 21 21 <Weapon> 22 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -11.4, 0, -5" />23 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -11.4, 0, -5" />24 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 11.4, 0, -5" />25 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 11.4, 0, -5" />22 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -11.4, 0, -5" /> 23 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -11.4, 0, -5" /> 24 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 11.4, 0, -5" /> 25 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 11.4, 0, -5" /> 26 26 </Weapon> 27 27 <Weapon> 28 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -15, 1.6, -2" />29 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -15, 1.6, -2" />30 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 15, 1.6, -2" />31 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 15, 1.6, -2" />28 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -15, 1.6, -2" /> 29 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -15, 1.6, -2" /> 30 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 15, 1.6, -2" /> 31 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 15, 1.6, -2" /> 32 32 </Weapon> 33 33 <Weapon> 34 <LaserFire mode=1 munitionpershot= 0muzzleoffset="2.2,6,16" damage=30 shielddamage=20 />35 <LaserFire mode=1 munitionpershot= 0muzzleoffset="-2.2,6,16" damage=30 shielddamage=20 />36 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />34 <LaserFire mode=1 munitionpershot=1 muzzleoffset="2.2,6,16" damage=30 shielddamage=20 /> 35 <LaserFire mode=1 munitionpershot=1 muzzleoffset="-2.2,6,16" damage=30 shielddamage=20 /> 36 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 fuel=10 /> 37 37 <GravityBombFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 /> 38 38 </Weapon> … … 40 40 </Weapon> 41 41 </WeaponPack> 42 <WeaponPack> 43 <links> 44 <DefaultWeaponmodeLink firemode=1 weaponmode=0 /> 45 </links> 46 <!--Weapon> 47 <EnergyDrink mode=0 munitionpershot=0 delay=0 material="Flares/point_lensflare"muzzleoffset="2,-0.2,-1" /> 48 </Weapon--> 49 </WeaponPack> 50 </weapons> 42 </weaponpacks> 43 <munition> 44 <LaserMunition initialmagazines=20 maxmagazines=20 munitionpermagazine=10 replenishamount=1 replenishinterval=6.0/> 45 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 46 <RocketMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=1 /> 47 <GravityBombMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 48 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsHeavyCruiser.oxi
r9943 r10961 10 10 <WeaponSet firemode=3 /> 11 11 </weaponsets> 12 <weapon s>12 <weaponpacks> 13 13 <WeaponPack> 14 14 <links> … … 24 24 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-76" yaw="-90" position="-1.5,1,0.3" scale=0.6 /> 25 25 </attached> 26 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />27 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />26 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" /> 27 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" /> 28 28 <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 /> 29 29 </Weapon> … … 34 34 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-76" yaw="-90" position="-1.5,1,-10.3" scale=0.6 /> 35 35 </attached> 36 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />37 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />36 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" /> 37 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" /> 38 38 <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 /> 39 39 </Weapon> 40 40 <Weapon> 41 41 <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 /> 42 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />42 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 fuel=10 /> 43 43 </Weapon> 44 44 </WeaponPack> 45 <WeaponPack> 46 <links> 47 <DefaultWeaponmodeLink firemode=1 weaponmode=0 /> 48 </links> 49 <!--Weapon> 50 <EnergyDrink mode=0 munitionpershot=0 delay=0 material="Flares/point_lensflare"muzzleoffset="2,-0.2,-1" /> 51 </Weapon--> 52 </WeaponPack> 53 </weapons> 45 </weaponpacks> 46 <munition> 47 <LaserMunition initialmagazines=12 maxmagazines=12 munitionpermagazine=10 replenishamount=1 replenishinterval=5.0/> 48 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 49 <RocketMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 50 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsHeavyCruiserBody.oxi
r9943 r10961 10 10 <WeaponSet firemode=3 /> 11 11 </weaponsets> 12 <weapon s>12 <weaponpacks> 13 13 <WeaponPack> 14 14 <links> … … 21 21 <attached> 22 22 </attached> 23 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />24 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />23 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" /> 24 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" /> 25 25 <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 /> 26 26 </Weapon> … … 28 28 <attached> 29 29 </attached> 30 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />31 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />30 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" /> 31 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" /> 32 32 <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 /> 33 33 </Weapon> 34 34 <Weapon> 35 35 <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 /> 36 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />36 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 fuel=10 /> 37 37 </Weapon> 38 38 </WeaponPack> … … 45 45 </Weapon--> 46 46 </WeaponPack> 47 </weapons> 47 </weaponpacks> 48 <munition> 49 <LaserMunition initialmagazines=12 maxmagazines=12 munitionpermagazine=10 replenishamount=1 replenishinterval=7.0/> 50 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 51 <RocketMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 52 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsHover.oxi
r10960 r10961 7 7 <WeaponSet firemode=1 /> 8 8 </weaponsets> 9 <weapon s>9 <weaponpacks> 10 10 <WeaponPack> 11 11 <links> … … 25 25 </links> 26 26 </WeaponPack> 27 </weapons> 27 </weaponpacks> 28 <munition> 29 <IceMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/> 30 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsImmTest.oxi
r8706 r10961 10 10 <WeaponSet firemode=3 /> 11 11 </weaponsets> 12 <weapon s>12 <weaponpacks> 13 13 <WeaponPack> 14 14 <links> … … 44 44 <Weapon> 45 45 <SimpleRocketFire mode=2 muzzleoffset="0,0,0" shielddamage=50 /> 46 <RocketFire mode=3 muzzleoffset="0,0,0" healthdamage=80 shielddamage=20 />46 <RocketFire mode=3 muzzleoffset="0,0,0" healthdamage=80 shielddamage=20 fuel=10 /> 47 47 </Weapon> 48 48 </WeaponPack> … … 55 55 </Weapon--> 56 56 </WeaponPack> 57 </weapons> 57 </weaponpacks> 58 <munition> 59 <LaserMunition initialmagazines=12 maxmagazines=12 munitionpermagazine=10 replenishamount=1 replenishinterval=7.0/> 60 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 61 <RocketMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 62 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsPirate.oxi
r7679 r10961 7 7 <WeaponSet firemode=1 /> 8 8 </weaponsets> 9 <weapon s>9 <weaponpacks> 10 10 <WeaponPack> 11 11 <links> … … 14 14 </links> 15 15 <Weapon> 16 <HsW01 mode=0 munitionpershot= 0delay=0 damage=2.5 material="Flares/point_lensflare" />17 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.5,0.6,1.7" />16 <HsW01 mode=0 munitionpershot=1 delay=0 damage=2.5 material="Flares/point_lensflare" /> 17 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.5,0.6,1.7" /> 18 18 </Weapon> 19 19 <Weapon> 20 <HsW01 mode=0 munitionpershot= 0delay=0 damage=2.5 material="Flares/point_lensflare" />21 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.5,0.6,1.7" />20 <HsW01 mode=0 munitionpershot=1 delay=0 damage=2.5 material="Flares/point_lensflare" /> 21 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.5,0.6,1.7" /> 22 22 </Weapon> 23 23 </WeaponPack> 24 </weapons> 24 </weaponpacks> 25 <munition> 26 <LaserMunition initialmagazines=12 maxmagazines=12 munitionpermagazine=10 replenishamount=1 replenishinterval=7.0/> 27 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsRing.oxi
r10650 r10961 1 <weaponslots> 2 <WeaponSlot position="11,0,-7" /> 3 <WeaponSlot position="0,0,-7" /> 4 <WeaponSlot position="-11,0,-7" /> 5 </weaponslots> 6 <weaponsets> 7 <WeaponSet firemode=0 /> 8 <WeaponSet firemode=1 /> 9 </weaponsets> 10 <weapons> 11 <WeaponPack> 12 <links> 13 <DefaultWeaponmodeLink firemode=0 weaponmode=0 /> 14 <DefaultWeaponmodeLink firemode=1 weaponmode=1 /> 15 </links> 16 <Weapon> 17 <IceGun mode=0 munitionpershot=0 delay=0.125 damage=9.3 muzzleoffset="11,0,-3" freezefactor=0.5 freezetime=2.0 /> 18 </Weapon> 19 <Weapon> 20 <IceGun mode=0 munitionpershot=0 delay=0.125 damage=9.3 muzzleoffset=" -11,0,-3" freezefactor=0.5 freezetime=2.0 /> 21 </Weapon> 22 <Weapon> 23 <GravityBombFire mode=1 munitionpershot=0 delay=0.125 damage=3 muzzleoffset="0,0,-7"/> 24 </Weapon> 25 </WeaponPack> 26 </weapons> 1 <weaponslots> 2 <WeaponSlot position="11,0,-7" /> 3 <WeaponSlot position="-11,0,-7" /> 4 <WeaponSlot position="0,0,-7" /> 5 </weaponslots> 6 <weaponsets> 7 <WeaponSet firemode=0 /> 8 <WeaponSet firemode=1 /> 9 <WeaponSet firemode=2 /> 10 </weaponsets> 11 <weaponpacks> 12 <WeaponPack> 13 <links> 14 <DefaultWeaponmodeLink firemode=0 weaponmode=0 /> 15 <DefaultWeaponmodeLink firemode=1 weaponmode=1 /> 16 <DefaultWeaponmodeLink firemode=2 weaponmode=2 /> 17 </links> 18 <Weapon> 19 <LaserFire mode=0 munitionpershot=1 damage=10 shielddamage=5 /> 20 <IceGun mode=1 munitionpershot=1 delay=0.125 damage=9.3 muzzleoffset="11,0,-3" freezefactor=0.5 freezetime=2.0 /> 21 </Weapon> 22 <Weapon> 23 <LaserFire mode=0 munitionpershot=1 damage=10 shielddamage=5 /> 24 <IceGun mode=1 munitionpershot=1 delay=0.125 damage=9.3 muzzleoffset=" -11,0,-3" freezefactor=0.5 freezetime=2.0 /> 25 </Weapon> 26 <Weapon> 27 <GravityBombFire mode=2 munitionpershot=1 delay=0.125 damage=3 muzzleoffset="0,0,-7"/> 28 </Weapon> 29 </WeaponPack> 30 </weaponpacks> 31 <munition> 32 <LaserMunition initialmagazines=12 maxmagazines=12 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 33 <GravityBombMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=1 /> 34 <IceMunition initialmagazines=16 maxmagazines=16 munitionpermagazine=1 /> 35 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsSpacecruiser.oxi
r9348 r10961 14 14 <WeaponSet firemode=3 /> 15 15 </weaponsets> 16 <weapon s>16 <weaponpacks> 17 17 <WeaponPack> 18 18 <links> … … 28 28 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-76" yaw="-90" position="-1.5,1,0.3" scale=0.6 /> 29 29 </attached> 30 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />31 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />30 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" /> 31 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" /> 32 32 <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 /> 33 33 </Weapon> … … 38 38 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-104" yaw="-90" position="0,1.3,0.3" scale=0.6 /> 39 39 </attached> 40 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />41 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />40 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" /> 41 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" /> 42 42 <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 /> 43 43 </Weapon> 44 44 <Weapon> 45 45 <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 /> 46 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />46 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 fuel=10 /> 47 47 </Weapon> 48 48 <Weapon> … … 52 52 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-76" yaw="-90" position="-1.5,1,0.3" scale=0.6 /> 53 53 </attached> 54 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />55 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />54 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" /> 55 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" /> 56 56 <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 /> 57 57 </Weapon> … … 62 62 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-104" yaw="-90" position="0,1.3,0.3" scale=0.6 /> 63 63 </attached> 64 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />65 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />64 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" /> 65 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" /> 66 66 <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 /> 67 67 </Weapon> … … 72 72 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-76" yaw="-90" position="-1.5,1,0.3" scale=0.6 /> 73 73 </attached> 74 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />75 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />74 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" /> 75 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" /> 76 76 <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 /> 77 77 </Weapon> … … 82 82 <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-104" yaw="-90" position="0,1.3,0.3" scale=0.6 /> 83 83 </attached> 84 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />85 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />84 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" /> 85 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" /> 86 86 <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 /> 87 87 </Weapon> 88 88 </WeaponPack> 89 </weapons> 89 </weaponpacks> 90 <munition> 91 <LaserMunition initialmagazines=20 maxmagazines=20 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 92 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 93 <RocketMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 94 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsSwallow.oxi
r10629 r10961 2 2 <WeaponSlot position=" 8,1.66,-17.5" /> 3 3 <WeaponSlot position="-8,1.66,-17.5" /> 4 <WeaponSlot position="0,1.66,-17.5" /> 4 5 </weaponslots> 5 6 <weaponsets> … … 7 8 <WeaponSet firemode=1 /> 8 9 </weaponsets> 9 <weapon s>10 <weaponpacks> 10 11 <WeaponPack> 11 12 <links> … … 14 15 </links> 15 16 <Weapon> 16 <SplitGun mode=0 munitionpershot=0 damage=6.0 muzzleoffset="0.5,0.6,1.7" splittime=0.2 numberofsplits=2 numberofchilds=3 spread=0.1 damagereduction=2.0 /> 17 <SplitGun mode=0 munitionpershot=1 damage=6.0 muzzleoffset="0.5,0.6,1.7" splittime=0.2 numberofsplits=2 numberofchilds=3 spread=0.1 damagereduction=2.0 /> 18 <LaserFire mode=1 munitionpershot=1 damage=10.0 muzzleoffset="0.5,0.6,1.7" /> 17 19 </Weapon> 18 20 <Weapon> 19 <SplitGun mode=0 munitionpershot=0 damage=6.0 muzzleoffset="-0.5,0.6,1.7" splittime=0.2 numberofsplits=2 numberofchilds=3 spread=0.1 damagereduction=2.0 /> 20 </Weapon> 21 <SplitGun mode=0 munitionpershot=1 damage=6.0 muzzleoffset="-0.5,0.6,1.7" splittime=0.2 numberofsplits=2 numberofchilds=3 spread=0.1 damagereduction=2.0 /> 22 <LaserFire mode=1 munitionpershot=1 damage=10.0 muzzleoffset="-0.5,0.6,1.7" /> 23 </Weapon> 21 24 </WeaponPack> 22 </weapons> 25 </weaponpacks> 26 <munition> 27 <LaserMunition initialmagazines=20 maxmagazines=20 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 28 <SplitMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 29 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsTransporter.oxi
r8891 r10961 7 7 <WeaponSet firemode=1 /> 8 8 </weaponsets> 9 <weapon s>9 <weaponpacks> 10 10 <WeaponPack> 11 11 <links> … … 14 14 </links> 15 15 <Weapon> 16 <HsW01 mode=0 munitionpershot= 0delay=0.1 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />17 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />16 <HsW01 mode=0 munitionpershot=1 delay=0.1 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" /> 17 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" /> 18 18 <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 /> 19 19 </Weapon> 20 20 <Weapon> 21 <HsW01 mode=0 munitionpershot= 0delay=0.1 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />22 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />21 <HsW01 mode=0 munitionpershot=1 delay=0.1 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" /> 22 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" /> 23 23 <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 /> 24 24 </Weapon> 25 25 </WeaponPack> 26 </weapons> 26 </weaponpacks> 27 <munition> 28 <LaserMunition initialmagazines=20 maxmagazines=20 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 29 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 30 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsTurret.oxi
r10216 r10961 5 5 <WeaponSet firemode=0 /> 6 6 </weaponsets> 7 <weapon s>7 <weaponpacks> 8 8 <WeaponPack> 9 9 <links> … … 20 20 </Weapon> 21 21 </WeaponPack> 22 </weapons> 22 </weaponpacks> 23 <munition> 24 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 25 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsTurret1.oxi
r10262 r10961 5 5 <WeaponSet firemode=0 /> 6 6 </weaponsets> 7 <weapon s>7 <weaponpacks> 8 8 <WeaponPack> 9 9 <links> … … 20 20 </Weapon> 21 21 </WeaponPack> 22 </weapons> 22 </weaponpacks> 23 <munition> 24 <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 25 </munition> -
code/branches/presentationHS15/data/levels/includes/weaponSettingsbigship.oxi
r9664 r10961 10 10 <WeaponSet firemode=3 /> 11 11 </weaponsets> 12 <weapon s>12 <weaponpacks> 13 13 <WeaponPack> 14 14 <links> … … 21 21 <attached> 22 22 </attached> 23 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />24 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />23 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" /> 24 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" /> 25 25 <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 /> 26 26 </Weapon> … … 29 29 30 30 </attached> 31 <HsW01 mode=0 munitionpershot= 0delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />32 <HsW01 mode=0 munitionpershot= 0delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />31 <HsW01 mode=0 munitionpershot=1 delay=0 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" /> 32 <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" /> 33 33 <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 /> 34 34 </Weapon> 35 35 <Weapon> 36 36 <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 /> 37 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />37 <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 fuel=10 /> 38 38 </Weapon> 39 39 </WeaponPack> … … 46 46 </Weapon--> 47 47 </WeaponPack> 48 </weapons> 48 </weaponpacks> 49 <munition> 50 <LaserMunition initialmagazines=12 maxmagazines=12 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/> 51 <LightningMunition initialmagazines=4 maxmagazines=4 munitionpermagazine=8 /> 52 <RocketMunition initialmagazines=5 maxmagazines=5 munitionpermagazine=1 /> 53 </munition> -
code/branches/presentationHS15/data/levels/missionOne.oxw
r9985 r10961 1080 1080 maxshieldhealth = "120" 1081 1081 shieldabsorption = "0.8" 1082 reloadrate= "1"1083 reloadwaittime= "1"1082 shieldrechargerate = "1" 1083 shieldrechargewaittime = "1" 1084 1084 name = "cruiser" 1085 1085 radarname = "Spacecruiser" > -
code/branches/presentationHS15/data/levels/pickups.oxw
r9939 r10961 36 36 <SpawnPoint position="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff /> 37 37 38 <!-- Boost pickup --> 39 40 <PickupSpawner pickup=smallboostpickup position="-25,-125,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 41 <PickupSpawner pickup=mediumboostpickup position="0,-125,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 42 <PickupSpawner pickup=hugeboostpickup position="25,-125,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 43 44 <!-- DamageBoost pickup --> 45 46 <PickupSpawner pickup=smalldamageboostpickup position="-25,-100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 47 <PickupSpawner pickup=mediumdamageboostpickup position="0,-100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 48 <PickupSpawner pickup=hugedamageboostpickup position="25,-100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 49 50 <!-- Munition pickups --> 51 52 <PickupSpawner pickup=smallmunitionpickup position="-25,-75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 53 <PickupSpawner pickup=mediummunitionpickup position="0,-75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 54 <PickupSpawner pickup=hugemunitionpickup position="25,-75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 55 56 <!-- Shrink pickup --> 57 58 <PickupSpawner pickup=smallshrinkpickup position="-25,-50,-125" triggerDistance="20" respawnTime="60" maxSpawnedItems="5" /> 59 <PickupSpawner pickup=mediumshrinkpickup position="0,-50,-125" triggerDistance="20" respawnTime="60" maxSpawnedItems="5" /> 60 <PickupSpawner pickup=hugeshrinkpickup position="25,-50,-125" triggerDistance="20" respawnTime="60" maxSpawnedItems="5" /> 61 38 62 <!-- Shield pickups --> 39 63 … … 63 87 64 88 <!-- Meta pickups --> 65 66 <Template name=usemetapickup baseclass=MetaPickup>67 <MetaPickup representation="use" metaType="use" />68 </Template>69 70 <Template name=dropmetapickup baseclass=MetaPickup>71 <MetaPickup representation="drop" metaType="drop" />72 </Template>73 74 <Template name=destroymetapickup baseclass=MetaPickup>75 <MetaPickup metaType="destroy" />76 </Template>77 78 <Template name=destroycarriermetapickup baseclass=MetaPickup>79 <MetaPickup metaType="destroyCarrier" />80 </Template>81 89 82 90 <PickupSpawner pickup=usemetapickup position="-25,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> … … 91 99 <!-- Drone pickup --> 92 100 93 <PickupSpawner pickup=dronepickup position="-50,50,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 94 95 <!-- DamageBoost pickup --> 96 97 <PickupSpawner pickup=smalldamageboostpickup position="-50,75,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 98 <PickupSpawner pickup=mediumdamageboostpickup position="-50,100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 99 <PickupSpawner pickup=largedamageboostpickup position="-50,125,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 101 <PickupSpawner pickup=dronepickup position="-25,100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 100 102 101 103 <!-- Other pickups --> … … 103 105 <!-- PickupRepresentation for the pickup below, since it is not a standard pickup provided by pickups.oxi --> 104 106 <PickupRepresentation 105 name = " MediumHealth"106 pickupName = " MediumHealth Pack"107 pickupDescription = " Once usedadds a medium amout of health to the ship."107 name = "ContinousHealth" 108 pickupName = "Continous Health Pack" 109 pickupDescription = "While useing adds a medium amout of health to the ship." 108 110 spawnerTemplate = "mediumhealthpickupRepresentation" 109 111 inventoryRepresentation = "MediumHealth" … … 111 113 112 114 <Template name=continuoushealthpickup baseclass=HealthPickup> 113 <HealthPickup representation=" MediumHealth" health=500 activationType=immediate healthRate=10 durationType=continuous />115 <HealthPickup representation="ContinousHealth" health=500 activationType=immediate healthRate=10 durationType=continuous /> 114 116 </Template> 115 117 116 118 <PickupSpawner pickup=continuoushealthpickup position="-50,0,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" /> 117 118 <PickupSpawner pickup="smallshrinkpickup" position="-25,-50,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" />119 <PickupSpawner pickup="mediumshrinkpickup" position="0,-50,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" />120 <PickupSpawner pickup="hugeshrinkpickup" position="25,-50,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" />121 119 122 120 <!-- @Objects: 4 boxes (uncontrolled pawns) --> … … 177 175 </Pawn> 178 176 179 <!--StaticEntity position="0,-200,0" direction="0,-1,0" collisionType=static mass=500 friction=0.01 >180 <attached>181 <Model position="0,0,0" mesh="cube.mesh" scale3D="10,10,10" />182 </attached>183 <collisionShapes>184 <BoxCollisionShape position="0,0,0" halfExtents="10,10,10" />185 </collisionShapes>186 </StaticEntity-->187 188 177 </Scene> 189 178 </Level> -
code/branches/presentationHS15/data/levels/presentationHS13.oxw
r10258 r10961 162 162 maxshieldhealth = "120" 163 163 shieldabsorption = "0.8" 164 reloadrate= "1"165 reloadwaittime= "1"164 shieldrechargerate = "1" 165 shieldrechargewaittime = "1" 166 166 name = "Tanis1" 167 167 radarname = "Tanis Cruiser" > -
code/branches/presentationHS15/data/levels/shieldTest.oxw
r9016 r10961 43 43 shieldabsorption= 1 44 44 45 reloadrate= "10"46 reloadwaittime= 145 shieldrechargerate = "10" 46 shieldrechargewaittime = 1 47 47 48 48 > -
code/branches/presentationHS15/data/levels/templates/HeavyCruiser.oxt
r10216 r10961 19 19 maxshieldhealth = 50 20 20 shieldabsorption = 0.8 21 reloadrate= 122 reloadwaittime= 121 shieldrechargerate = 1 22 shieldrechargewaittime = 1 23 23 24 24 primaryThrust = 300 -
code/branches/presentationHS15/data/levels/templates/HeavyCruiserBody.oxt
r9943 r10961 17 17 maxshieldhealth = 500 18 18 shieldabsorption = 0.8 19 reloadrate= 120 reloadwaittime= 119 shieldrechargerate = 1 20 shieldrechargewaittime = 1 21 21 22 22 primaryThrust = 300 -
code/branches/presentationHS15/data/levels/templates/ModularSpaceShipTest.oxt
r10262 r10961 15 15 maxshieldhealth = 50 16 16 shieldabsorption = 0.8 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 100 -
code/branches/presentationHS15/data/levels/templates/bigship.oxt
r9664 r10961 15 15 maxshieldhealth = 50 16 16 shieldabsorption = 0.8 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 30 -
code/branches/presentationHS15/data/levels/templates/enemyInvader.oxt
r9954 r10961 15 15 maxshieldhealth = 10 16 16 shieldabsorption = 0.9 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 150 … … 77 77 maxshieldhealth = 20 78 78 shieldabsorption = 0.9 79 reloadrate= 180 reloadwaittime= 179 shieldrechargerate = 1 80 shieldrechargewaittime = 1 81 81 82 82 primaryThrust = 150 -
code/branches/presentationHS15/data/levels/templates/pickupRepresentationTemplates.oxt
r9348 r10961 1 <!-- Boost pickups: --> 2 3 <Template name=smallboostpickupRepresentation> 4 <PickupRepresentation> 5 <spawner-representation> 6 <StaticEntity> 7 <attached> 8 <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Sphere2" scale=0.1> 9 <attached> 10 <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Flash" scale=0.3 /> 11 </attached> 12 </Billboard> 13 </attached> 14 </StaticEntity> 15 </spawner-representation> 16 </PickupRepresentation> 17 </Template> 18 19 <Template name=smallboostpickup baseclass=BoostPickup> 20 <BoostPickup 21 representation = "smallboostpickup" 22 boostrefill = 0.5 23 activationType = "immediate" 24 durationType = "once" 25 /> 26 </Template> 27 28 <Template name=mediumboostpickupRepresentation> 29 <PickupRepresentation> 30 <spawner-representation> 31 <StaticEntity> 32 <attached> 33 <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Sphere2" scale=0.1> 34 <attached> 35 <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Flash" scale=0.5 /> 36 </attached> 37 </Billboard> 38 </attached> 39 </StaticEntity> 40 </spawner-representation> 41 </PickupRepresentation> 42 </Template> 43 44 <Template name=mediumboostpickup baseclass=BoostPickup> 45 <BoostPickup 46 representation = "mediumboostpickup" 47 boostrefill = 0.75 48 activationType = "immediate" 49 durationType = "once" 50 /> 51 </Template> 52 53 <Template name=hugeboostpickupRepresentation> 54 <PickupRepresentation> 55 <spawner-representation> 56 <StaticEntity> 57 <attached> 58 <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Sphere2" scale=0.1> 59 <attached> 60 <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Flash" scale=0.7 /> 61 </attached> 62 </Billboard> 63 </attached> 64 </StaticEntity> 65 </spawner-representation> 66 </PickupRepresentation> 67 </Template> 68 69 <Template name=hugeboostpickup baseclass=BoostPickup> 70 <BoostPickup 71 representation = "hugeboostpickup" 72 boostrefill = 1.0 73 activationType = "immediate" 74 durationType = "once" 75 /> 76 </Template> 77 1 78 <!-- Shield pickups: --> 2 79 … … 189 266 </Template> 190 267 268 <!-- Munition pickups: --> 269 270 <Template name=smallmunitionpickupRepresentation> 271 <PickupRepresentation> 272 <spawner-representation> 273 <StaticEntity> 274 <attached> 275 <Billboard position="0,0,0" colour="0.59,0.30,0.16" material="Sphere2" scale=0.1> 276 <attached> 277 <Billboard position="0,0,0" colour="0.47,0.24,0.13" material="Munition" scale=0.3 /> 278 </attached> 279 </Billboard> 280 </attached> 281 </StaticEntity> 282 </spawner-representation> 283 </PickupRepresentation> 284 </Template> 285 286 <Template name=smallmunitionpickup baseclass=MunitionPickup> 287 <MunitionPickup 288 representation = "smallmunitionpickup" 289 activationType = "immediate" 290 durationType = "once" 291 > 292 <munitioncontainers> 293 <MunitionContainer munitiontype="LaserMunition" munitionamount=16 magazinesamount=0 /> 294 <MunitionContainer munitiontype="FusionMunition" munitionamount=8 magazinesamount=0 /> 295 <MunitionContainer munitiontype="LightningMunition" munitionamount=8 magazinesamount=0 /> 296 </munitioncontainers> 297 </MunitionPickup> 298 </Template> 299 300 <Template name=mediummunitionpickupRepresentation> 301 <PickupRepresentation> 302 <spawner-representation> 303 <StaticEntity> 304 <attached> 305 <Billboard position="0,0,0" colour="0.59,0.30,0.16" material="Sphere2" scale=0.1> 306 <attached> 307 <Billboard position="0,0,0" colour="0.47,0.24,0.13" material="Munition" scale=0.5 /> 308 </attached> 309 </Billboard> 310 </attached> 311 </StaticEntity> 312 </spawner-representation> 313 </PickupRepresentation> 314 </Template> 315 316 <Template name=mediummunitionpickup baseclass=MunitionPickup> 317 <MunitionPickup 318 representation = "mediummunitionpickup" 319 activationType = "immediate" 320 durationType = "once" 321 > 322 <munitioncontainers> 323 <MunitionContainer munitiontype="LaserMunition" munitionamount=32 magazinesamount=0 /> 324 <MunitionContainer munitiontype="FusionMunition" munitionamount=16 magazinesamount=0 /> 325 <MunitionContainer munitiontype="LightningMunition" munitionamount=16 magazinesamount=0 /> 326 <MunitionContainer munitiontype="SplitMunition" munitionamount=8 magazinesamount=0 /> 327 <MunitionContainer munitiontype="RocketMunition" munitionamount=0 magazinesamount=2 /> 328 </munitioncontainers> 329 </MunitionPickup></Template> 330 331 <Template name=hugemunitionpickupRepresentation> 332 <PickupRepresentation> 333 <spawner-representation> 334 <StaticEntity> 335 <attached> 336 <Billboard position="0,0,0" colour="0.59,0.30,0.16" material="Sphere2" scale=0.1> 337 <attached> 338 <Billboard position="0,0,0" colour="0.47,0.24,0.13" material="Munition" scale=0.7 /> 339 </attached> 340 </Billboard> 341 </attached> 342 </StaticEntity> 343 </spawner-representation> 344 </PickupRepresentation> 345 </Template> 346 347 <Template name=hugemunitionpickup baseclass=MunitionPickup> 348 <MunitionPickup 349 representation = "hugemunitionpickup" 350 activationType = "immediate" 351 durationType = "once" 352 > 353 <munitioncontainers> 354 <MunitionContainer munitiontype="LaserMunition" munitionamount=64 magazinesamount=0 /> 355 <MunitionContainer munitiontype="FusionMunition" munitionamount=32 magazinesamount=0 /> 356 <MunitionContainer munitiontype="LightningMunition" munitionamount=32 magazinesamount=0 /> 357 <MunitionContainer munitiontype="SplitMunition" munitionamount=16 magazinesamount=0 /> 358 <MunitionContainer munitiontype="RocketMunition" munitionamount=0 magazinesamount=10 /> 359 <MunitionContainer munitiontype="IceMunition" munitionamount=0 magazinesamount=10 /> 360 <MunitionContainer munitiontype="GravityBombMunition" munitionamount=0 magazinesamount=10 /> 361 </munitioncontainers> 362 </MunitionPickup> 363 </Template> 364 191 365 <!-- Meta pickups: --> 192 366 … … 196 370 <StaticEntity> 197 371 <attached> 198 <Billboard position="0,0,0" colour="0.60,0.97,0.23" material="Sphere2" scale=0.1> 199 <attached> 200 <Billboard position="0,0,0" colour="0.40,0.81,0.10" material="Arrow" scale=0.65 /> 201 </attached> 202 </Billboard> 203 </attached> 204 </StaticEntity> 205 </spawner-representation> 206 </PickupRepresentation> 372 <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=0.1> 373 <attached> 374 <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="ArrowUp" scale=0.65 /> 375 </attached> 376 </Billboard> 377 </attached> 378 </StaticEntity> 379 </spawner-representation> 380 </PickupRepresentation> 381 </Template> 382 383 <Template name=usemetapickup baseclass=MetaPickup> 384 <MetaPickup representation="use" metaType="use" /> 207 385 </Template> 208 386 … … 212 390 <StaticEntity> 213 391 <attached> 214 <Billboard position="0,0,0" colour="0.95,0.10,0.05" material="Sphere2" scale=0.1> 215 <attached> 216 <Billboard position="0,0,0" colour="0.95,0.20,0.10" material="Arrow" scale=0.65 /> 217 </attached> 218 </Billboard> 219 </attached> 220 </StaticEntity> 221 </spawner-representation> 222 </PickupRepresentation> 392 <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=0.1> 393 <attached> 394 <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="ArrowDown" scale=0.65 /> 395 </attached> 396 </Billboard> 397 </attached> 398 </StaticEntity> 399 </spawner-representation> 400 </PickupRepresentation> 401 </Template> 402 403 <Template name=dropmetapickup baseclass=MetaPickup> 404 <MetaPickup representation="drop" metaType="drop" /> 405 </Template> 406 407 <Template name=destroypickupRepresentation> 408 <PickupRepresentation> 409 <spawner-representation> 410 <StaticEntity> 411 <attached> 412 <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=0.1> 413 <attached> 414 <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Splash" scale=0.65 /> 415 </attached> 416 </Billboard> 417 </attached> 418 </StaticEntity> 419 </spawner-representation> 420 </PickupRepresentation> 421 </Template> 422 423 <Template name=destroymetapickup baseclass=MetaPickup> 424 <MetaPickup representation="destroy" metaType="destroy" /> 425 </Template> 426 427 <Template name=destroycarrierpickupRepresentation> 428 <PickupRepresentation> 429 <spawner-representation> 430 <StaticEntity> 431 <attached> 432 <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=0.1> 433 <attached> 434 <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Asterisk" scale=0.65 /> 435 </attached> 436 </Billboard> 437 </attached> 438 </StaticEntity> 439 </spawner-representation> 440 </PickupRepresentation> 441 </Template> 442 443 <Template name=destroycarriermetapickup baseclass=MetaPickup> 444 <MetaPickup representation="destroycarrier" metaType="destroyCarrier" /> 223 445 </Template> 224 446 … … 232 454 <Billboard position="0,0,0" colour="0.95,0.10,0.05" material="Sphere2" scale=0.1 > 233 455 <attached> 234 <Billboard position="0,0,0" colour="0. 30,0.30,0.30" material="damageSmall" scale=0.7/>456 <Billboard position="0,0,0" colour="0.70,0.10,0.10" material="Damage" scale=0.3 /> 235 457 </attached> 236 458 </Billboard> … … 258 480 <Billboard position="0,0,0" colour="0.95,0.10,0.05" material="Sphere2" scale=0.1 > 259 481 <attached> 260 <Billboard position="0,0,0" colour="0. 30,0.30,0.30" material="damageMedium" scale=0.7/>482 <Billboard position="0,0,0" colour="0.70,0.10,0.10" material="Damage" scale=0.5 /> 261 483 </attached> 262 484 </Billboard> … … 277 499 </Template> 278 500 279 <Template name= largedamageboostpickupRepresentation>501 <Template name=hugedamageboostpickupRepresentation> 280 502 <PickupRepresentation> 281 503 <spawner-representation> … … 284 506 <Billboard position="0,0,0" colour="0.95,0.10,0.05" material="Sphere2" scale=0.1 > 285 507 <attached> 286 <Billboard position="0,0,0" colour="0. 30,0.30,0.30" material="damageLarge" scale=0.7 />287 </attached> 288 </Billboard> 289 </attached> 290 </StaticEntity> 291 </spawner-representation> 292 </PickupRepresentation> 293 </Template> 294 295 <Template name= largedamageboostpickup baseclass=DamageBoostPickup>508 <Billboard position="0,0,0" colour="0.70,0.10,0.10" material="Damage" scale=0.7 /> 509 </attached> 510 </Billboard> 511 </attached> 512 </StaticEntity> 513 </spawner-representation> 514 </PickupRepresentation> 515 </Template> 516 517 <Template name=hugedamageboostpickup baseclass=DamageBoostPickup> 296 518 <DamageBoostPickup 297 representation = " largedamageboostpickup"519 representation = "hugedamageboostpickup" 298 520 duration = 10.0 299 521 damageMultiplier = 7.0 … … 498 720 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Sphere2" scale=0.1> 499 721 <attached> 500 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale=0. 4/>722 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale=0.35 /> 501 723 </attached> 502 724 </Billboard> … … 524 746 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Sphere2" scale=0.1> 525 747 <attached> 526 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale=0. 7/>748 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale=0.55 /> 527 749 </attached> 528 750 </Billboard> … … 550 772 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Sphere2" scale=0.1> 551 773 <attached> 552 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale= 1.0/>774 <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale=0.75 /> 553 775 </attached> 554 776 </Billboard> … … 609 831 </attached> 610 832 <collisionShapes> 611 < BoxCollisionShape position="0,0,0" halfExtents="1, 1, 1"/>833 <SphereCollisionShape position="0,0,0" radius=5 /> 612 834 </collisionShapes> 613 835 <weaponslots> 614 <WeaponSlot position=" 0,0,0" />836 <WeaponSlot position="0,0,0" /> 615 837 </weaponslots> 616 838 <weaponsets> 617 839 <WeaponSet firemode=0 /> 618 840 </weaponsets> 619 <weapon s>841 <weaponpacks> 620 842 <WeaponPack> 621 843 <links> … … 631 853 </Weapon> 632 854 </WeaponPack> 633 </weapons> 855 </weaponpacks> 856 <munition> 857 <LaserMunition initialmagazines=2 maxmagazines=2 munitionpermagazine=10 replenishamount=1 replenishinterval=0.5/> 858 </munition> 634 859 </Drone> 635 860 </Template> -
code/branches/presentationHS15/data/levels/templates/spaceshipAssff.oxt
r9939 r10961 15 15 maxshieldhealth = 50 16 16 shieldabsorption = 0.8 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 100 -
code/branches/presentationHS15/data/levels/templates/spaceshipAssff2.oxt
r8860 r10961 15 15 maxshieldhealth = 150 16 16 shieldabsorption = 0.95 17 reloadrate= 518 reloadwaittime= 0.517 shieldrechargerate = 5 18 shieldrechargewaittime = 0.5 19 19 20 20 primaryThrust = 100 … … 37 37 linearDamping = 0.7 38 38 angularDamping = 0.9999999 39 40 explosionSound = "sounds/Explosion2.ogg" 39 41 > 40 42 <engines> -
code/branches/presentationHS15/data/levels/templates/spaceshipCollateralDamage.oxt
r9664 r10961 16 16 maxshieldhealth = 50 17 17 shieldabsorption = 0.8 18 reloadrate= 119 reloadwaittime= 118 shieldrechargerate = 1 19 shieldrechargewaittime = 1 20 20 21 21 primaryThrust = 100 -
code/branches/presentationHS15/data/levels/templates/spaceshipDodgeRace.oxt
r10262 r10961 15 15 maxshieldhealth = 20 16 16 shieldabsorption = 0.1 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 150 -
code/branches/presentationHS15/data/levels/templates/spaceshipEscort.oxt
r9664 r10961 15 15 maxshieldhealth = 60 16 16 shieldabsorption = 0.9 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 150 -
code/branches/presentationHS15/data/levels/templates/spaceshipGhost.oxt
r8858 r10961 15 15 maxshieldhealth = 150 16 16 shieldabsorption = 0.9 17 reloadrate= 318 reloadwaittime= 0.017 shieldrechargerate = 3 18 shieldrechargewaittime = 0.0 19 19 20 20 primaryThrust = 600 -
code/branches/presentationHS15/data/levels/templates/spaceshipHeartAttack.oxt
r10622 r10961 15 15 maxshieldhealth = 800 16 16 shieldabsorption = 0.8 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 40 -
code/branches/presentationHS15/data/levels/templates/spaceshipInvader.oxt
r9943 r10961 15 15 maxshieldhealth = 60 16 16 shieldabsorption = 0.9 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 150 -
code/branches/presentationHS15/data/levels/templates/spaceshipPirate.oxt
r8858 r10961 15 15 maxshieldhealth = 40 16 16 shieldabsorption = 0.6 17 reloadrate= 218 reloadwaittime= 0.517 shieldrechargerate = 2 18 shieldrechargewaittime = 0.5 19 19 20 20 primaryThrust = 100 -
code/branches/presentationHS15/data/levels/templates/spaceshipRace.oxt
r9348 r10961 15 15 maxshieldhealth = 50 16 16 shieldabsorption = 0.8 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 100 -
code/branches/presentationHS15/data/levels/templates/spaceshipRing.oxt
r10622 r10961 15 15 maxshieldhealth = 60 16 16 shieldabsorption = 0.9 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 150 -
code/branches/presentationHS15/data/levels/templates/spaceshipSpacecruiser.oxt
r9348 r10961 15 15 maxshieldhealth = 90 16 16 shieldabsorption = 0.9 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 90 -
code/branches/presentationHS15/data/levels/templates/spaceshipSwallow.oxt
r8858 r10961 15 15 maxshieldhealth = 80 16 16 shieldabsorption = 0.75 17 reloadrate= 1.518 reloadwaittime= 0.217 shieldrechargerate = 1.5 18 shieldrechargewaittime = 0.2 19 19 20 20 primaryThrust = 600; -
code/branches/presentationHS15/data/levels/templates/spaceshipTurret.oxt
r9664 r10961 15 15 maxshieldhealth = 50 16 16 shieldabsorption = 0.8 17 reloadrate= 118 reloadwaittime= 117 shieldrechargerate = 1 18 shieldrechargewaittime = 1 19 19 20 20 primaryThrust = 100 -
code/branches/presentationHS15/data/levels/templates/towerdefensetower.oxt
r10622 r10961 4 4 5 5 explosionchunks = 6 6 reloadrate=107 reloadwaittime=56 shieldrechargerate=10 7 shieldrechargewaittime=5 8 8 collisionType="none" 9 9 pitch="0" -
code/branches/presentationHS15/data/levels/towerDefense.oxw
r10629 r10961 39 39 <TowerDefenseTower 40 40 explosionchunks=6 41 reloadrate=1042 reloadwaittime=541 shieldrechargerate=10 42 shieldrechargewaittime=5 43 43 collisionType="none" 44 44 pitch="0" … … 60 60 <WeaponSet firemode=0 /> 61 61 </weaponsets> 62 <weapon s>62 <weaponpacks> 63 63 <WeaponPack> 64 64 <links> … … 69 69 </Weapon> 70 70 </WeaponPack> 71 </weapons> 71 </weaponpacks> 72 <munition> 73 <LaserMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10 replenishamount=1 replenishinterval=0.3/> 74 </munition> 72 75 </TowerDefenseTower> 73 76 </Template> … … 76 79 <TowerDefenseTower 77 80 explosionchunks=6 78 reloadrate=1079 reloadwaittime=581 shieldrechargerate=10 82 shieldrechargewaittime=5 80 83 collisionType="none" 81 84 pitch="0" … … 97 100 <WeaponSet firemode=0 /> 98 101 </weaponsets> 99 <weapon s>102 <weaponpacks> 100 103 <WeaponPack> 101 104 <links> … … 106 109 </Weapon> 107 110 </WeaponPack> 108 </weapons> 111 </weaponpacks> 112 <munition> 113 <LightningMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/> 114 </munition> 109 115 <attached> 110 116 <Backlight position="0,0,0" scale=2.0 colour="0.4, 0.0, 1.0" width=10 length=10 lifetime=0.3 elements=20 trailmaterial="Trail/backlighttrail" material="Examples/Flare" loop=1 /> … … 116 122 <TowerDefenseTower 117 123 explosionchunks=6 118 reloadrate=10119 reloadwaittime=5124 shieldrechargerate=10 125 shieldrechargewaittime=5 120 126 collisionType="none" 121 127 pitch="0" … … 137 143 <WeaponSet firemode=0 /> 138 144 </weaponsets> 139 <weapon s>145 <weaponpacks> 140 146 <WeaponPack> 141 147 <links> … … 146 152 </Weapon> 147 153 </WeaponPack> 148 </weapons> 154 </weaponpacks> 155 <munition> 156 <SplitMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/> 157 </munition> 149 158 </TowerDefenseTower> 150 159 </Template> … … 153 162 <TowerDefenseTower 154 163 explosionchunks=6 155 reloadrate=10156 reloadwaittime=5164 shieldrechargerate=10 165 shieldrechargewaittime=5 157 166 collisionType="none" 158 167 pitch="0" … … 174 183 <WeaponSet firemode=0 /> 175 184 </weaponsets> 176 <weapon s>185 <weaponpacks> 177 186 <WeaponPack> 178 187 <links> … … 180 189 </links> 181 190 <Weapon> 182 <RocketFire mode=0 munitionpershot=0 muzzleoffset="0,0,0" damage=2 shielddamage=4 />191 <RocketFire mode=0 munitionpershot=0 muzzleoffset="0,0,0" damage=2 shielddamage=4 fuel=10/> 183 192 </Weapon> 184 193 </WeaponPack> 185 </weapons> 194 </weaponpacks> 195 <munition> 196 <RocketMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/> 197 </munition> 186 198 <attached> 187 199 <ParticleSpawner position="0,0,0" source="Orxonox/sparks" lifetime=3.0 autostart=1 loop=1 /> … … 193 205 <TowerDefenseTower 194 206 explosionchunks=6 195 reloadrate=10196 reloadwaittime=5207 shieldrechargerate=10 208 shieldrechargewaittime=5 197 209 collisionType="none" 198 210 pitch="0" … … 214 226 <WeaponSet firemode=0 /> 215 227 </weaponsets> 216 <weapon s>228 <weaponpacks> 217 229 <WeaponPack> 218 230 <links> … … 223 235 </Weapon> 224 236 </WeaponPack> 225 </weapons> 237 </weaponpacks> 238 <munition> 239 <IceMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/> 240 </munition> 226 241 </TowerDefenseTower> 227 242 </Template> … … 243 258 maxshieldhealth = 15 244 259 shieldabsorption = 0.8 245 reloadrate= 1246 reloadwaittime= 1260 shieldrechargerate = 1 261 shieldrechargewaittime = 1 247 262 248 263 primaryThrust = 1000 … … 308 323 maxshieldhealth = 0 309 324 shieldabsorption = 0.8 310 reloadrate= 1311 reloadwaittime= 1325 shieldrechargerate = 1 326 shieldrechargewaittime = 1 312 327 313 328 primaryThrust = 100 … … 381 396 maxshieldhealth = 5 382 397 shieldabsorption = 0.8 383 reloadrate= 1384 reloadwaittime= 1398 shieldrechargerate = 1 399 shieldrechargewaittime = 1 385 400 386 401 primaryThrust = 100 -
code/branches/presentationHS15/data/overlays/HUDTemplates3.oxo
r10292 r10961 27 27 </Template> 28 28 29 <Template name="rockethud"> 30 <OverlayGroup name = "rockethud" scale = "1, 1"> 31 <HUDRocketFuelBar 32 name = "RocketFuelBar1" 33 background = "Orxonox/BarBackground" 34 size = "0.40, 0.04" 35 position = "0.0 , 1.0 " 36 pickpoint = "0, 1" 37 correctaspect = true 38 iconmaterial = "Orxonox/BarIconFuel" 39 > 40 <BarColour position = 0.0 colour = "0.7,0.2,0.2" /> 41 <BarColour position = 0.5 colour = "0.7,0.7,0.2" /> 42 <BarColour position = 1.0 colour = "0.2,0.7,0.2" /> 43 </HUDRocketFuelBar> 44 </OverlayGroup> 45 </Template> 46 29 47 <Template name="spaceshiphud"> 30 48 <OverlayGroup name = "spaceshiphud" scale = "1, 1"> … … 34 52 name = "HealthBar1" 35 53 background = "Orxonox/HealthBarBackground" 36 size = "0. 35, 0.0875"37 position = "0.0 , 0. 9"54 size = "0.40, 0.08" 55 position = "0.0 , 0.85 " 38 56 pickpoint = "0, 1" 39 57 bartexture = "healthbar_bar.png" 40 58 textfont = "VeraMono" 41 59 textusebarcolour = true 42 texts ize = 0.03943 textoffset = "0.3 15, 0.05"60 textscale = 0.4 61 textoffset = "0.325, -0.825" 44 62 textpickpoint = "0, 0" 45 63 textalign = "right" 46 correctaspect = false47 textcorrectaspect = false64 correctaspect = true 65 iconmaterial = "Orxonox/BarIconHealth" 48 66 > 49 67 <BarColour position = 0.0 colour = "0.7,0.2,0.2" /> … … 51 69 <BarColour position = 1.0 colour = "0.2,0.7,0.2" /> 52 70 </HUDHealthBar> 71 72 <HUDShieldBar 73 name = "ShieldBar1" 74 background = "Orxonox/BarBackground" 75 size = "0.40, 0.04" 76 position = "0.0 , 0.9 " 77 pickpoint = "0, 1" 78 correctaspect = true 79 iconmaterial = "Orxonox/BarIconShield" 80 > 81 <BarColour position = 0.0 colour = "0.7,0.2,0.2" /> 82 <BarColour position = 0.5 colour = "0.7,0.7,0.2" /> 83 <BarColour position = 1.0 colour = "0.2,0.7,0.2" /> 84 </HUDShieldBar> 53 85 54 86 <HUDSpeedBar 55 87 name = "SpeedBar1" 56 88 background = "Orxonox/BarBackground" 57 size = "0. 35, 0.05"89 size = "0.40, 0.04" 58 90 position = "0.0 , 0.95 " 59 91 pickpoint = "0, 1" 60 correctaspect = false 92 correctaspect = true 93 iconmaterial = "Orxonox/BarIconSpeed" 61 94 > 62 95 <BarColour position = 0.0 colour = "0.7,0.5,0.2" /> … … 67 100 <HUDBoostBar 68 101 name = "BoostBar1" 69 background tex = "bar1.png"70 size = "0. 35, 0.05"102 background = "Orxonox/BarBackground" 103 size = "0.40, 0.04" 71 104 position = "0.0 , 1.0 " 72 105 pickpoint = "0, 1" 73 correctaspect = false 106 correctaspect = true 107 iconmaterial = "Orxonox/BarIconBoost" 74 108 > 75 109 <BarColour position = 0.0 colour = "0.7,0.2,0.2" /> … … 81 115 name = "EnemyHealthBar" 82 116 background = "Orxonox/HealthBarBackground" 83 size = "0. 35, 0.0875"84 position = "1 ,0 .1"85 pickpoint = "1, 1"117 size = "0.4, 0.08" 118 position = "1 ,0" 119 pickpoint = "1, 0" 86 120 bartexture = "healthbar_bar.png" 87 121 textfont = "VeraMono" 88 122 textusebarcolour = true 89 texts ize = 0.03990 textoffset = " 0.315, 0.05"123 textscale = 0.4 124 textoffset = "-0.675, 0.175" 91 125 textpickpoint = "0, 0" 92 126 textalign = "right" 93 correctaspect = false94 textcorrectaspect = false127 correctaspect = true 128 iconmaterial = "Orxonox/BarIconHealth" 95 129 > 96 130 <BarColour position = 0.0 colour = "0.7,0.2,0.2" /> … … 98 132 <BarColour position = 1.0 colour = "0.2,0.7,0.2" /> 99 133 </HUDEnemyHealthBar> 134 135 <HUDEnemyShieldBar 136 name = "EnemyShieldBar1" 137 background = "Orxonox/BarBackground" 138 size = "0.40, 0.04" 139 position = "1.0 , 0.1 " 140 pickpoint = "1, 0" 141 correctaspect = true 142 iconmaterial = "Orxonox/BarIconShield" 143 > 144 <BarColour position = 0.0 colour = "0.7,0.2,0.2" /> 145 <BarColour position = 0.5 colour = "0.7,0.7,0.2" /> 146 <BarColour position = 1.0 colour = "0.2,0.7,0.2" /> 147 </HUDEnemyShieldBar> 100 148 101 149 <HUDNavigation … … 127 175 mapAngle3D = 0.6435011 128 176 /> 177 178 <HUDWeaponSystem 179 name = "WeaponSystem" 180 correctaspect = true 181 position = "0.01, 0.01" 182 pickpoint = "0, 0" 183 visible = "true" 184 weaponModeHUDSize = "0.09, 0.03" 185 /> 129 186 130 187 <HUDTimer -
code/branches/presentationHS15/data/overlays/HoverHUD.oxo
r10960 r10961 32 32 textfont = "VeraMono" 33 33 textusebarcolour = true 34 texts ize = 0.03935 textoffset = "0.3 15, 0.05"34 textscale = 0.4 35 textoffset = "0.325, -0.825" 36 36 textpickpoint = "0, 0" 37 37 textalign = "right" 38 correctaspect = false39 textcorrectaspect = false38 correctaspect = true 39 iconmaterial = "Orxonox/BarIconHealth" 40 40 > 41 41 <BarColour position = 0.0 colour = "0.7,0.2,0.2" /> -
code/branches/presentationHS15/data/overlays/InvaderHUD.oxo
r9953 r10961 99 99 textfont = "VeraMono" 100 100 textusebarcolour = true 101 texts ize = 0.039102 textoffset = "0.3 15, 0.05"101 textscale = 0.4 102 textoffset = "0.325, -0.825" 103 103 textpickpoint = "0, 0" 104 104 textalign = "right" 105 correctaspect = false106 textcorrectaspect = false105 correctaspect = true 106 iconmaterial = "Orxonox/BarIconHealth" 107 107 > 108 108 <BarColour position = 0.0 colour = "0.7,0.2,0.2" /> -
code/branches/presentationHS15/data/overlays/jumpHUD.oxo
r10262 r10961 37 37 showFuel = false 38 38 showMessages = true 39 /> 40 41 <HUDBar 42 name = "SpeedBar1" 43 background = "Orxonox/BarBackground" 44 size = "0.35, 0.05" 45 position = "0.0 , 1.0 " 46 pickpoint = "0, 1" 47 correctaspect = false 48 49 initialvalue = 50 50 51 > 52 <BarColour position = 0.0 colour = "0.7,0.5,0.2" /> 53 <BarColour position = 0.5 colour = "0.2,0.7,0.2" /> 54 <BarColour position = 1.0 colour = "0.7,0.2,0.2" /> 55 </HUDBar> 39 /> 56 40 57 41 </OverlayGroup> -
code/branches/presentationHS15/src/modules/overlays/CMakeLists.txt
r7163 r10961 16 16 LINK_LIBRARIES 17 17 orxonox 18 weapons 18 19 SOURCE_FILES ${OVERLAYS_SRC_FILES} 19 20 ) -
code/branches/presentationHS15/src/modules/overlays/OverlaysPrereqs.h
r9939 r10961 90 90 class HUDRadar; 91 91 class HUDSpeedBar; 92 class HUDShieldBar; 92 93 class HUDBoostBar; 94 class HUDRocketFuelBar; 95 class HUDEnemyHealthBar; 96 class HUDEnemyShieldBar; 97 class HUDWeaponSystem; 98 class HUDWeapon; 99 class HUDWeaponMode; 93 100 class HUDTimer; 94 101 class HUDAimAssistant; -
code/branches/presentationHS15/src/modules/overlays/hud/CMakeLists.txt
r9939 r10961 5 5 HUDSpeedBar.cc 6 6 HUDBoostBar.cc 7 HUDShieldBar.cc 7 8 HUDHealthBar.cc 9 HUDRocketFuelBar.cc 8 10 HUDTimer.cc 9 11 HUDEnemyHealthBar.cc 12 HUDEnemyShieldBar.cc 13 HUDWeaponMode.cc 14 HUDWeapon.cc 15 HUDWeaponSystem.cc 10 16 ChatOverlay.cc 11 17 AnnounceMessage.cc -
code/branches/presentationHS15/src/modules/overlays/hud/HUDBar.cc
r9667 r10961 47 47 RegisterClass(BarColour); 48 48 49 BarColour::BarColour(Context* context) 50 : BaseObject(context) 49 BarColour::BarColour(Context* context) : BaseObject(context) 51 50 { 52 51 RegisterObject(BarColour); 53 52 54 53 this->setColour(ColourValue(1.0, 1.0, 1.0, 1.0)); 55 54 this->setPosition(0.0); … … 69 68 RegisterClass(HUDBar); 70 69 71 HUDBar::HUDBar(Context* context) 72 : OrxonoxOverlay(context), right2Left_(false), autoColour_(false) 70 HUDBar::HUDBar(Context* context) : OrxonoxOverlay(context), right2Left_(false), autoColour_(false) 73 71 { 74 72 RegisterObject(HUDBar); … … 88 86 this->bar_->setMaterialName(materialname); 89 87 88 this->bar_->setPosition(0.0f,0.0f); 89 this->bar_->setDimensions(1.0f,1.0f); 90 91 this->bUseIcon_ = false; 90 92 this->value_ = 1.0f; // initialize with 1.0f to trigger a change when calling setValue(0.0f) on the line below 91 93 this->setAutoColour(true); … … 95 97 96 98 this->background_->addChild(bar_); 99 100 this->icon_ = static_cast<Ogre::PanelOverlayElement* >(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "HUDBar_icon_" + getUniqueNumberString())); 101 this->icon_->setPosition(0.06f,0.0f); 102 this->icon_->setDimensions(0.1f,1.0f); 103 this->background_->addChild(this->icon_); 97 104 } 98 105 … … 115 122 XMLPortParam(HUDBar, "autocolour", setAutoColour, getAutoColour, xmlelement, mode); 116 123 XMLPortParam(HUDBar, "bartexture", setBarTexture, getBarTexture, xmlelement, mode); 124 XMLPortParam(HUDBar, "iconmaterial", setIconMaterial, getIconMaterial, xmlelement, mode); 117 125 XMLPortObject(HUDBar, BarColour, "", addColour, getColour, xmlelement, mode); 118 126 } … … 161 169 } 162 170 171 float height = this->bar_->getHeight(); 172 float top = this->bar_->getTop(); 173 163 174 // set value 164 175 if (this->right2Left_) 165 176 { 166 177 // backward case 167 this->bar_->setPosition(0.06f + 0.88f * (1 - this->value_), 0.0f); 168 this->bar_->setDimensions(0.88f * this->value_, 1.0f); 178 if (this->bUseIcon_) 179 { 180 this->bar_->setPosition(0.16f + 0.78f * (1 - this->value_), top); 181 this->bar_->setDimensions(0.78f * this->value_, height); 182 } 183 else 184 { 185 this->bar_->setPosition(0.06f + 0.88f * (1 - this->value_), top); 186 this->bar_->setDimensions(0.88f * this->value_, height); 187 } 169 188 } 170 189 else 171 190 { 172 191 // default case 173 this->bar_->setPosition(0.06f, 0.0f); 174 this->bar_->setDimensions(0.88f * this->value_, 1.0f); 175 } 192 if (this->bUseIcon_) 193 { 194 this->bar_->setPosition(0.16f, top); 195 this->bar_->setDimensions(0.78f * this->value_, height); 196 } 197 else 198 { 199 this->bar_->setPosition(0.06f, top); 200 this->bar_->setDimensions(0.88f * this->value_, height); 201 } 202 } 203 176 204 if (this->value_ != 0) 177 205 this->bar_->setTiling(this->value_, 1.0); … … 208 236 return this->textureUnitState_->getTextureName(); 209 237 } 238 239 void HUDBar::setIconMaterial(const std::string& iconMaterial) 240 { 241 this->bUseIcon_ = true; 242 this->icon_->setMaterialName(iconMaterial); 243 valueChanged(); 244 } 245 246 const std::string& HUDBar::getIconMaterial() const 247 { 248 return this->icon_->getMaterialName(); 249 } 210 250 } -
code/branches/presentationHS15/src/modules/overlays/hud/HUDBar.h
r9667 r10961 37 37 #include <map> 38 38 #include <vector> 39 #include <OgrePanelOverlayElement.h> 39 40 40 41 #include "util/Math.h" … … 51 52 virtual ~BarColour() { } 52 53 53 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 54 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 54 55 55 56 void setColour(const ColourValue& colour) { this->colour_ = colour; } … … 115 116 const std::string& getBarTexture() const; 116 117 118 void setIconMaterial(const std::string& iconMaterial); 119 const std::string& getIconMaterial() const; 120 117 121 inline const ColourValue& getCurrentBarColour() const 118 122 { return this->currentColour_; } 119 123 124 inline void setIconPosition(Vector2 position) 125 { this->icon_->setPosition(position.x, position.y); } 126 inline void setIconDimensions(Vector2 dimensions) 127 { this->icon_->setDimensions(dimensions.x, dimensions.y); } 128 120 129 protected: 121 130 virtual void valueChanged(); 122 123 131 private: 124 132 void addColour(BarColour* colour); … … 129 137 float value_; //!< progress of bar 130 138 ColourValue currentColour_; 139 bool bUseIcon_; 131 140 132 141 Ogre::PanelOverlayElement* bar_; 133 142 Ogre::TextureUnitState* textureUnitState_; 143 Ogre::PanelOverlayElement* icon_; 134 144 std::map<float, ColourValue> colours_; 135 145 std::vector<BarColour*> barColours_; -
code/branches/presentationHS15/src/modules/overlays/hud/HUDBoostBar.cc
r9667 r10961 59 59 if (this->owner_->isBoostCoolingDown()) 60 60 { 61 this->setBackgroundColour(ColourValue(0.7f, 0.2f, 0.2f));61 //this->setBackgroundColour(ColourValue(0.7f, 0.2f, 0.2f)); 62 62 if (this->flashDt_ <= 0.0f) 63 63 { … … 72 72 this->flashDt_ = 0.0f; 73 73 this->show(); 74 this->setBackgroundColour(ColourValue(0.2f, 0.7f, 0.2f));74 //this->setBackgroundColour(ColourValue(0.2f, 0.7f, 0.2f)); 75 75 } 76 76 -
code/branches/presentationHS15/src/modules/overlays/hud/HUDHealthBar.cc
r9667 r10961 45 45 this->owner_ = 0; 46 46 this->bUseBarColour_ = false; 47 this->textOffset_ = Vector2(0.0f, 0.0f); 48 this->textScale_ = 1.0f; 49 50 this->setIconPosition(Vector2(0.05f,0.5f)); 51 this->setIconDimensions(Vector2(0.1f,0.5f)); 47 52 48 53 this->textoverlay_ = new OverlayText(this->getContext()); … … 51 56 52 57 this->textoverlay_->setCaption(""); 58 this->textoverlay_->setAspectCorrection(false); 59 60 positionText(); 53 61 } 54 62 … … 58 66 { 59 67 this->textoverlay_->destroy(); 60 this->textoverlay_ = 0;68 this->textoverlay_ = NULL; 61 69 } 62 70 } … … 70 78 XMLPortParam(HUDHealthBar, "textusebarcolour", setTextUseBarColour, getTextUseBarColour, xmlelement, mode).defaultValues(false); 71 79 XMLPortParam(HUDHealthBar, "textcolour", setTextColour, getTextColour, xmlelement, mode).defaultValues(ColourValue(1.0, 1.0, 1.0, 1.0)); 72 XMLPortParam(HUDHealthBar, "textsize", setTextSize, getTextSize, xmlelement, mode).defaultValues(1.0f);73 80 XMLPortParam(HUDHealthBar, "textalign", setTextAlignmentString, getTextAlignmentString, xmlelement, mode).defaultValues("left"); 74 81 XMLPortParam(HUDHealthBar, "textoffset", setTextOffset, getTextOffset, xmlelement, mode).defaultValues(Vector2::ZERO); 82 XMLPortParam(HUDHealthBar, "textscale", setTextScale, getTextScale, xmlelement, mode).defaultValues(1.0f); 75 83 XMLPortParam(HUDHealthBar, "textpickpoint", setTextPickPoint, getTextPickPoint, xmlelement, mode).defaultValues(Vector2::ZERO); 76 84 XMLPortParam(HUDHealthBar, "textrotation", setTextRotation, getTextRotation, xmlelement, mode).defaultValues(0.0f); 77 XMLPortParam(HUDHealthBar, "textcorrectaspect", setTextAspectCorrection, getTextAspectCorrection, xmlelement, mode).defaultValues(true);78 85 XMLPortParam(HUDHealthBar, "textspacewidth", setTextSpaceWidth, getTextSpaceWidth, xmlelement, mode).defaultValues(true); 79 86 } … … 139 146 this->textoverlay_->setColour(this->textColour_); 140 147 } 148 149 void HUDHealthBar::positionText() 150 { 151 this->textoverlay_->setPosition(this->getPosition() + this->textOffset_*this->getActualSize()); 152 this->textoverlay_->setTextSize(this->getActualSize().y*this->textScale_); 153 } 154 155 void HUDHealthBar::positionChanged() 156 { 157 HUDBar::positionChanged(); 158 positionText(); 159 } 160 161 void HUDHealthBar::sizeChanged() 162 { 163 HUDBar::sizeChanged(); 164 positionText(); 165 } 141 166 } -
code/branches/presentationHS15/src/modules/overlays/hud/HUDHealthBar.h
r10624 r10961 75 75 { return this->textoverlay_->getAlignmentString(); } 76 76 77 inline void setTextSize(float size)78 { this->textoverlay_->setTextSize(size); }79 inline float getTextSize() const80 { return this->textoverlay_->getTextSize(); }81 82 77 inline void setTextVisible(bool bVisible) 83 78 { this->textoverlay_->setVisible(bVisible); } 84 79 inline bool getTextVisible() const 85 80 { return this->textoverlay_->isVisible(); } 81 82 inline void setTextScale(float scale) 83 { this->textScale_ = scale; 84 positionText(); 85 } 86 inline float getTextScale() const 87 { return this->textScale_; } 86 88 87 89 inline void setTextPickPoint(const Vector2& pickpoint) … … 91 93 92 94 inline void setTextOffset(const Vector2& position) 93 { this->textoverlay_->setPosition(this->getPosition() + (position - this->getPickPoint()) * this->getSize()); } 95 { this->textOffset_ = position; 96 this->positionText(); 97 } 94 98 inline Vector2 getTextOffset() const 95 { return (this->textoverlay_->getPosition() - this->getPosition()) / this->getSize() + this->getPickPoint(); } 96 97 inline void setTextAspectCorrection(bool correct) 98 { this->textoverlay_->setAspectCorrection(correct); } 99 inline bool getTextAspectCorrection() const 100 { return this->textoverlay_->getAspectCorrection(); } 99 { return this->textOffset_; } 101 100 102 101 inline void setTextRotation(const Degree& angle) … … 112 111 inline void setHealthBarOwner(Pawn* owner) 113 112 { this->owner_ = owner; } 114 113 protected: 114 virtual void positionChanged(); 115 virtual void sizeChanged(); 115 116 private: 117 virtual void positionText(); 116 118 WeakPtr<Pawn> owner_; 117 119 StrongPtr<OverlayText> textoverlay_; 118 120 bool bUseBarColour_; 119 121 ColourValue textColour_; 122 Vector2 textOffset_; 123 float textScale_; 120 124 }; 121 125 } -
code/branches/presentationHS15/src/modules/pickup/PickupPrereqs.h
r9348 r10961 85 85 class ShrinkPickup; 86 86 class DamageBoostPickup; 87 class MunitionPickup; 88 class MunitionContainer; 87 89 } 88 90 -
code/branches/presentationHS15/src/modules/pickup/PickupRepresentation.cc
r9667 r10961 187 187 Billboard* icon = new Billboard(spawner->getContext()); 188 188 icon->setColour(ColourValue(0.89f, 0.79f, 0.08f)); 189 icon->setMaterial(" asterisk");189 icon->setMaterial("Unknown"); 190 190 icon->setScale(0.5); 191 191 sphere->attach(icon); -
code/branches/presentationHS15/src/modules/pickup/items/CMakeLists.txt
r9348 r10961 8 8 ShrinkPickup.cc 9 9 DamageBoostPickup.cc 10 BoostPickup.cc 11 MunitionPickup.cc 12 MunitionContainer.cc 10 13 ) -
code/branches/presentationHS15/src/modules/pickup/items/DronePickup.h
r9667 r10961 43 43 #include "tools/interfaces/Tickable.h" 44 44 45 namespace orxonox { 45 namespace orxonox 46 { 46 47 47 48 /** … … 80 81 std::string droneTemplate_; //!< The name of the template, based upon which the Drone is created. 81 82 Pawn* carrierToPawnHelper(void); //!< Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails. 82 83 84 85 83 }; 86 84 } -
code/branches/presentationHS15/src/modules/towerdefense/TowerDefenseTower.cc
r10727 r10961 61 61 { 62 62 upgrade++; 63 float reloadrate = getReloadRate();64 float reloadwaittime = getReloadWaitTime();65 63 this->setDamageMultiplier((upgrade+1)*2.0f); 66 64 //this->setRotationThrust(2*this->getRotationThrust()); 67 reloadrate = 0.5f*reloadrate;68 reloadwaittime = 0.5f*reloadwaittime;69 setReloadRate(reloadrate);70 setReloadWaitTime(reloadwaittime);71 65 //this->addTemplate("towerturret1"); 72 66 } -
code/branches/presentationHS15/src/modules/weapons/WeaponsPrereqs.h
r10622 r10961 69 69 { 70 70 class MuzzleFlash; 71 class IceGunFreezer; 72 class RocketController; 71 73 72 74 // munitions 73 75 class FusionMunition; 74 76 class LaserMunition; 75 class ReplenishingMunition;76 77 class RocketMunition; 77 78 class GravityBombMuntion; 79 class IceMunition; 80 class LightningMunition; 81 class SplitMunition; 78 82 79 83 // projectiles … … 81 85 class LightningGunProjectile; 82 86 class ParticleProjectile; 87 class IceProjectile; 88 class SplitProjectile; 83 89 class Projectile; 90 class BasicProjectile; 84 91 class Rocket; 85 92 class RocketOld; … … 91 98 class FusionFire; 92 99 class HsW01; 100 class IceGun; 101 class SplitGun; 93 102 class LaserFire; 94 103 class LightningGun; -
code/branches/presentationHS15/src/modules/weapons/munitions/CMakeLists.txt
r10629 r10961 1 1 ADD_SOURCE_FILES(WEAPONS_SRC_FILES 2 ReplenishingMunition.cc3 2 LaserMunition.cc 3 LightningMunition.cc 4 4 FusionMunition.cc 5 5 RocketMunition.cc -
code/branches/presentationHS15/src/modules/weapons/munitions/FusionMunition.cc
r9667 r10961 28 28 29 29 /** 30 @file FusionMunition. h30 @file FusionMunition.cc 31 31 @brief Implementation of the FusionMunition class. 32 32 */ … … 34 34 #include "FusionMunition.h" 35 35 #include "core/CoreIncludes.h" 36 #include "core/XMLPort.h" 36 37 37 38 namespace orxonox … … 45 46 this->maxMunitionPerMagazine_ = 10; 46 47 this->maxMagazines_ = 10; 47 this-> magazines_ = 10;48 this->unassignedMagazines_ = 10; 48 49 49 this-> bUseSeparateMagazines_ = true;50 this->bStackMunition_ = false; 50 this->deployment_ = MunitionDeployment::Separate; 51 51 52 this->reloadTime_ = 1.0f; 52 53 53 54 this->bAllowMunitionRefilling_ = true; 54 55 this->bAllowMultiMunitionRemovementUnderflow_ = true; 56 57 this->reloadTime_ = 0.5f; 58 } 59 60 void FusionMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode) 61 { 62 SUPER(FusionMunition, XMLPort, xmlelement, mode); 55 63 } 56 64 } -
code/branches/presentationHS15/src/modules/weapons/munitions/FusionMunition.h
r9667 r10961 53 53 FusionMunition(Context* context); 54 54 virtual ~FusionMunition() {} 55 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 55 56 }; 56 57 } -
code/branches/presentationHS15/src/modules/weapons/munitions/GravityBombMunition.cc
r10622 r10961 7 7 #include "GravityBombMunition.h" 8 8 #include "core/CoreIncludes.h" 9 #include "core/XMLPort.h" 9 10 10 11 namespace orxonox … … 17 18 this->maxMunitionPerMagazine_ = 1; 18 19 this->maxMagazines_ = 30; 19 this-> magazines_ = 15;20 this->unassignedMagazines_ = 15; 20 21 21 this->bUseSeparateMagazines_ = false; 22 this->bStackMunition_ = true; 22 this->deployment_ = MunitionDeployment::Stack; 23 23 24 24 this->bAllowMunitionRefilling_ = true; 25 25 this->bAllowMultiMunitionRemovementUnderflow_ = false; 26 27 this->reloadTime_ = 0.0f; 26 28 } 27 29 30 void GravityBombMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode) 31 { 32 SUPER(GravityBombMunition, XMLPort, xmlelement, mode); 33 } 28 34 } 29 35 -
code/branches/presentationHS15/src/modules/weapons/munitions/GravityBombMunition.h
r10622 r10961 28 28 GravityBombMunition(Context* context); 29 29 virtual ~GravityBombMunition() {} 30 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 30 31 }; 31 32 -
code/branches/presentationHS15/src/modules/weapons/munitions/IceMunition.cc
r10629 r10961 28 28 29 29 /** 30 @file IceMunition. h30 @file IceMunition.cc 31 31 @brief Implementation of the IceMunition class. 32 32 */ … … 34 34 #include "IceMunition.h" 35 35 #include "core/CoreIncludes.h" 36 #include "core/XMLPort.h" 36 37 37 38 namespace orxonox … … 45 46 this->maxMunitionPerMagazine_ = 1; 46 47 this->maxMagazines_ = 50; 47 this-> magazines_ = 25;48 this->unassignedMagazines_ = 25; 48 49 49 this->bUseSeparateMagazines_ = false; 50 this->bStackMunition_ = true; 50 this->deployment_ = MunitionDeployment::Stack; 51 51 52 this->bAllowMunitionRefilling_ = false;52 this->bAllowMunitionRefilling_ = true; 53 53 this->bAllowMultiMunitionRemovementUnderflow_ = false; 54 55 this->reloadTime_ = 0.5f; 56 } 57 58 void IceMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode) 59 { 60 SUPER(IceMunition, XMLPort, xmlelement, mode); 54 61 } 55 62 } -
code/branches/presentationHS15/src/modules/weapons/munitions/IceMunition.h
r10629 r10961 53 53 IceMunition(Context* context); 54 54 virtual ~IceMunition() {} 55 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 55 56 }; 56 57 } -
code/branches/presentationHS15/src/modules/weapons/munitions/LaserMunition.cc
r9667 r10961 28 28 29 29 /** 30 @file LaserMunition. h30 @file LaserMunition.cc 31 31 @brief Implementation of the LaserMunition class. 32 32 */ … … 34 34 #include "LaserMunition.h" 35 35 #include "core/CoreIncludes.h" 36 #include "core/XMLPort.h" 36 37 37 38 namespace orxonox … … 44 45 45 46 this->maxMunitionPerMagazine_ = 20; 46 this->maxMagazines_ = 1 ;47 this-> magazines_ = 1;47 this->maxMagazines_ = 10; 48 this->unassignedMagazines_ = 10; 48 49 49 this->bUseSeparateMagazines_ = false; 50 this->bStackMunition_ = true; 50 this->deployment_ = MunitionDeployment::Separate; 51 51 52 52 this->bAllowMunitionRefilling_ = true; 53 53 this->bAllowMultiMunitionRemovementUnderflow_ = true; 54 54 55 this->replenishInterval_ = 0.5f; 56 this->replenishMunitionAmount_ = 1; 55 this->replenishInterval_ = 7.0f; 56 this->replenishAmount_ = 1; 57 58 this->reloadTime_ = 0.5f; 59 } 60 61 void LaserMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode) 62 { 63 SUPER(LaserMunition, XMLPort, xmlelement, mode); 57 64 } 58 65 } -
code/branches/presentationHS15/src/modules/weapons/munitions/LaserMunition.h
r9667 r10961 36 36 37 37 #include "weapons/WeaponsPrereqs.h" 38 #include " ReplenishingMunition.h"38 #include "weaponsystem/ReplenishingMunition.h" 39 39 40 40 namespace orxonox … … 53 53 LaserMunition(Context* context); 54 54 virtual ~LaserMunition() {} 55 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 55 56 }; 56 57 } -
code/branches/presentationHS15/src/modules/weapons/munitions/RocketMunition.cc
r9667 r10961 28 28 29 29 /** 30 @file RocketMunition. h30 @file RocketMunition.cc 31 31 @brief Implementation of the RocketMunition class. 32 32 */ … … 34 34 #include "RocketMunition.h" 35 35 #include "core/CoreIncludes.h" 36 #include "core/XMLPort.h" 36 37 37 38 namespace orxonox … … 45 46 this->maxMunitionPerMagazine_ = 1; 46 47 this->maxMagazines_ = 30; 47 this-> magazines_ = 10;48 this->unassignedMagazines_ = 10; 48 49 49 this->bUseSeparateMagazines_ = false; 50 this->bStackMunition_ = true; 50 this->deployment_ = MunitionDeployment::Stack; 51 51 52 this->bAllowMunitionRefilling_ = false;52 this->bAllowMunitionRefilling_ = true; 53 53 this->bAllowMultiMunitionRemovementUnderflow_ = false; 54 55 this->reloadTime_ = 0.5f; 56 } 57 58 void RocketMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode) 59 { 60 SUPER(RocketMunition, XMLPort, xmlelement, mode); 54 61 } 55 62 } -
code/branches/presentationHS15/src/modules/weapons/munitions/RocketMunition.h
r9667 r10961 53 53 RocketMunition(Context* context); 54 54 virtual ~RocketMunition() {} 55 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 55 56 }; 56 57 } -
code/branches/presentationHS15/src/modules/weapons/munitions/SplitMunition.cc
r10629 r10961 28 28 29 29 /** 30 @file SplitMunition. h30 @file SplitMunition.cc 31 31 @brief Implementation of the SplitMunition class. 32 32 */ … … 34 34 #include "SplitMunition.h" 35 35 #include "core/CoreIncludes.h" 36 #include "core/XMLPort.h" 36 37 37 38 namespace orxonox … … 43 44 RegisterObject(SplitMunition); 44 45 45 this->maxMunitionPerMagazine_ = 1;46 this->maxMagazines_ = 10 0;47 this-> magazines_ = 25;46 this->maxMunitionPerMagazine_ = 5; 47 this->maxMagazines_ = 10; 48 this->unassignedMagazines_ = 5; 48 49 49 this->bUseSeparateMagazines_ = false; 50 this->bStackMunition_ = true; 50 this->deployment_ = MunitionDeployment::Share; 51 51 52 52 this->bAllowMunitionRefilling_ = true; 53 53 this->bAllowMultiMunitionRemovementUnderflow_ = false; 54 55 this->reloadTime_ = 0.5f; 56 } 57 58 void SplitMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode) 59 { 60 SUPER(SplitMunition, XMLPort, xmlelement, mode); 54 61 } 55 62 } -
code/branches/presentationHS15/src/modules/weapons/munitions/SplitMunition.h
r10629 r10961 53 53 SplitMunition(Context* context); 54 54 virtual ~SplitMunition() {} 55 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 55 56 }; 56 57 } -
code/branches/presentationHS15/src/modules/weapons/projectiles/BasicProjectile.cc
r10293 r10961 68 68 @brief 69 69 The function called when a projectile hits another thing. 70 Calls the hit-function, starts the reloadcountdown, displays visual hit effects defined in Pawn.70 Calls the hit-function, starts the shield recharge countdown, displays visual hit effects defined in Pawn. 71 71 Needs to be called in the collidesAgainst() function by every Class directly inheriting from BasicProjectile. 72 72 @param otherObject … … 97 97 { 98 98 victim->hit(this->getShooter(), contactPoint, cs, this->getDamage(), this->getHealthDamage(), this->getShieldDamage()); 99 victim->start ReloadCountdown();99 victim->startShieldRechargeCountdown(); 100 100 } 101 101 -
code/branches/presentationHS15/src/modules/weapons/projectiles/GravityBombField.cc
r10622 r10961 164 164 if (lifetime_ <= -4) 165 165 { 166 orxout(debug_output) << "Timeout. Destroying field." << endl;167 166 this->destroy(); 168 167 } -
code/branches/presentationHS15/src/modules/weapons/projectiles/Rocket.cc
r10622 r10961 66 66 67 67 this->localAngularVelocity_ = 0; 68 this->lifetime_ = 100.0f;68 this->lifetime_ = 20.0f; 69 69 70 70 if (GameMode::isMaster()) … … 76 76 Model* model = new Model(this->getContext()); 77 77 model->setMeshSource("rocket.mesh"); 78 model->scale( 0.7f);78 model->scale(1.0f); 79 79 this->attach(model); 80 80 … … 100 100 this->attachCollisionShape(collisionShape); 101 101 102 this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&BasicProjectile::destroyObject, this)));103 104 102 // Add sound 105 103 this->defSndWpnEngine_ = new WorldSound(this->getContext()); … … 114 112 this->defSndWpnLaunch_->setVolume(1.0f); 115 113 this->attach(defSndWpnLaunch_); 114 115 this->setHudTemplate("rockethud"); 116 116 } 117 117 else … … 320 320 } 321 321 322 float Rocket::getFuel() const 323 { 324 return this->destroyTimer_.getRemainingTime(); 325 } 326 327 void Rocket::setMaxFuel(float fuel) 328 { 329 this->lifetime_ = fuel; 330 this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&BasicProjectile::destroyObject, this))); 331 } 322 332 } -
code/branches/presentationHS15/src/modules/weapons/projectiles/Rocket.h
r10216 r10961 118 118 virtual void fired(unsigned int firemode); 119 119 120 /** 121 @brief Set the maximum lifetime of the rocket. 122 */ 123 virtual void setMaxFuel(float fuel); 124 /** 125 @brief Get the maximum lifetime of the rocket. 126 */ 127 inline float getMaxFuel() const 128 { return lifetime_; } 129 virtual float getFuel() const; 130 120 131 private: 121 132 Vector3 localAngularVelocity_; //!< Variable to temporarily store accumulated steering command input. -
code/branches/presentationHS15/src/modules/weapons/projectiles/SimpleRocket.cc
r10299 r10961 76 76 Model* model = new Model(this->getContext()); 77 77 model->setMeshSource("rocket.mesh"); 78 model->scale( 0.7f);78 model->scale(1.0f); 79 79 this->attach(model); 80 80 -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/EnergyDrink.cc
r10622 r10961 63 63 this->delayTimer_.setTimer(1.0f, false, createExecutor(createFunctor(&EnergyDrink::shot, this))); 64 64 this->delayTimer_.stopTimer(); 65 66 hudImageString_ = "Orxonox/WSHUD_WM_EnergyDrink"; 65 67 } 66 68 -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/FusionFire.cc
r10622 r10961 58 58 59 59 this->setMunitionName("FusionMunition"); 60 61 hudImageString_ = "Orxonox/WSHUD_WM_FusionFire"; 60 62 } 61 63 -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/GravityBombFire.cc
r10622 r10961 31 31 this->setMunitionName("GravityBombMunition"); 32 32 this->setDefaultSoundWithVolume("sounds/Rocket_launch.ogg",0.8); ///< sets sound of the bomb as it is fired. 33 34 hudImageString_ = "Orxonox/WSHUD_WM_GravityBombFire"; 33 35 } 34 36 -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/HsW01.cc
r10296 r10961 69 69 70 70 this->setDefaultSound(this->sound_); 71 72 hudImageString_ = "Orxonox/WSHUD_WM_HsW01"; 71 73 } 72 74 -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/IceGun.cc
r10629 r10961 59 59 this->setFreezeFactor(0.5); 60 60 61 this->setMunitionName(" LaserMunition");61 this->setMunitionName("IceMunition"); 62 62 this->setDefaultSound("sounds/Weapon_LightningGun.ogg"); 63 64 hudImageString_ = "Orxonox/WSHUD_WM_IceGun"; 63 65 } 64 66 -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/LaserFire.cc
r10622 r10961 56 56 57 57 this->setMunitionName("LaserMunition"); 58 59 hudImageString_ = "Orxonox/WSHUD_WM_LaserFire"; 58 60 } 59 61 -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/LightningGun.cc
r10296 r10961 54 54 this->speed_ = 750.0f; 55 55 56 this->setMunitionName("L aserMunition");56 this->setMunitionName("LightningMunition"); 57 57 this->setDefaultSound("sounds/Weapon_LightningGun.ogg"); 58 59 hudImageString_ = "Orxonox/WSHUD_WM_LightningGun"; 58 60 } 59 61 -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/RocketFire.cc
r10296 r10961 41 41 #include "weaponsystem/WeaponSystem.h" 42 42 #include "worldentities/pawns/Pawn.h" 43 43 #include "core/XMLPort.h" 44 44 #include "weapons/projectiles/Rocket.h" 45 45 … … 56 56 this->damage_ = 0.0f; 57 57 this->speed_ = 500.0f; 58 this->fuel_ = 10.0f; 58 59 59 60 this->setMunitionName("RocketMunition"); 60 61 // The firing sound of the Rocket is played in Rocket.cc (because of OpenAl sound positioning) 62 63 hudImageString_ = "Orxonox/WSHUD_WM_RocketFire"; 61 64 } 62 65 63 66 RocketFire::~RocketFire() 64 67 { 68 } 69 70 /** 71 @brief 72 XMLPort for the RocketFire. You can define the maximum lifetime of the rockets 73 */ 74 void RocketFire::XMLPort(Element& xmlelement, XMLPort::Mode mode) 75 { 76 SUPER(RocketFire, XMLPort, xmlelement, mode); 77 78 XMLPortParam(RocketFire, "fuel", setFuel, getFuel, xmlelement, mode); 65 79 } 66 80 … … 77 91 rocket->setPosition(this->getMuzzlePosition()); 78 92 rocket->setVelocity(this->getMuzzleDirection() * this->speed_); 79 rocket->scale( 2);93 rocket->scale(1.0f); 80 94 81 95 rocket->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()); … … 83 97 rocket->setShieldDamage(this->getShieldDamage()); 84 98 rocket->setHealthDamage(this->getHealthDamage()); 99 rocket->setMaxFuel(this->fuel_); 85 100 } 86 101 } -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/RocketFire.h
r9667 r10961 54 54 virtual ~RocketFire(); 55 55 56 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 57 56 58 virtual void fire(); 59 inline void setFuel(float fuel) 60 { this->fuel_ = fuel; } 61 inline float getFuel() const 62 { return this->fuel_; } 57 63 58 64 private: 59 65 float speed_; //!< The speed of the Rocket. 66 float fuel_; //!< The maximum lifetime of the rocket 60 67 }; 61 68 } -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/RocketFireOld.cc
r10622 r10961 59 59 this->setMunitionName("RocketMunition"); 60 60 // The firing sound of the Rocket is played in Rocket.cc (because of OpenAl sound positioning) 61 62 hudImageString_ = "Orxonox/WSHUD_WM_SimpleRocketFire"; 61 63 } 62 64 -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/SimpleRocketFire.cc
r9667 r10961 64 64 this->setDefaultSoundWithVolume("sounds/Rocket_launch.ogg",0.4f); 65 65 // The firing sound of the Rocket is played in Rocket.cc (because of OpenAl sound positioning) 66 67 hudImageString_ = "Orxonox/WSHUD_WM_SimpleRocketFire"; 66 68 } 67 69 … … 83 85 rocket->setVelocity(this->getMuzzleDirection()*this->speed_); 84 86 rocket->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()); 87 rocket->scale(1.0f); 85 88 86 89 rocket->setDamage(this->damage_); … … 89 92 90 93 WorldEntity* pawn = static_cast<ControllableEntity*>(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn())->getTarget(); 91 if (pawn) controller->setTarget(pawn); 94 if (pawn) 95 controller->setTarget(pawn); 92 96 } 93 97 } -
code/branches/presentationHS15/src/modules/weapons/weaponmodes/SplitGun.cc
r10629 r10961 35 35 36 36 #include "core/CoreIncludes.h" 37 #include "core/XMLPort.h" 37 #include "core/XMLPort.h" 38 38 #include "weaponsystem/Weapon.h" 39 39 #include "weaponsystem/WeaponPack.h" … … 62 62 this->setMunitionName("SplitMunition"); 63 63 this->setDefaultSound("sounds/Weapon_LightningGun.ogg"); 64 65 hudImageString_ = "Orxonox/WSHUD_WM_SplitGun"; 64 66 } 65 67 -
code/branches/presentationHS15/src/orxonox/OrxonoxPrereqs.h
r10624 r10961 167 167 class DefaultWeaponmodeLink; 168 168 class Munition; 169 class ReplenishingMunition; 169 170 class Weapon; 170 171 class WeaponMode; -
code/branches/presentationHS15/src/orxonox/controllers/HumanController.cc
r10624 r10961 199 199 @brief 200 200 Starts the boosting mode. 201 Resets the boosting timeout and ells the ControllableEntity to boost (or not boost anymore).201 Resets the boosting timeout and tells the ControllableEntity to boost (or not boost anymore). 202 202 */ 203 203 void HumanController::startBoosting(void) -
code/branches/presentationHS15/src/orxonox/infos/PlayerInfo.cc
r10624 r10961 202 202 203 203 this->changedControllableEntity(); 204 205 // HACK-ish 206 if(this->isHumanPlayer()) 207 entity->createHud(); 204 208 } 205 209 … … 252 256 if( !entity || this->previousControllableEntity_.size() == 0 ) 253 257 return; 258 259 entity->destroyHud(); // HACK-ish 254 260 255 261 this->controllableEntity_->setController(0); -
code/branches/presentationHS15/src/orxonox/overlays/OrxonoxOverlay.cc
r10624 r10961 450 450 tempTx->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, colour); 451 451 } 452 453 void OrxonoxOverlay::setZOrder(unsigned short order) 454 { 455 if (this->overlay_) 456 { 457 this->overlay_->setZOrder(order); 458 } 459 } 452 460 } -
code/branches/presentationHS15/src/orxonox/overlays/OrxonoxOverlay.h
r9667 r10961 65 65 only for displaying a picture). 66 66 - Reacts to changes of the window aspect 67 - Last but not least: On demand you can tell the overlay to automatically res ale to correct for67 - Last but not least: On demand you can tell the overlay to automatically rescale to correct for 68 68 aspect distortion. E.g. if you play 1024x768 you wouldn't want a round object to be oval. 69 69 Remark: This can (due to the Ogre::Overlay transformation order) only work for angle that are … … 186 186 virtual void changedOverlayGroup() 187 187 { this->changedVisibility(); } 188 virtual void setZOrder(unsigned short order); 188 189 189 190 protected: -
code/branches/presentationHS15/src/orxonox/weaponsystem/CMakeLists.txt
r5781 r10961 1 1 ADD_SOURCE_FILES(ORXONOX_SRC_FILES 2 2 Munition.cc 3 ReplenishingMunition.cc 3 4 Weapon.cc 4 5 WeaponMode.cc -
code/branches/presentationHS15/src/orxonox/weaponsystem/Munition.cc
r9667 r10961 24 24 * Fabian 'x3n' Landau 25 25 * Co-authors: 26 * ...26 * Fabien Vultier 27 27 * 28 28 */ … … 32 32 #include "core/CoreIncludes.h" 33 33 #include "core/command/Executor.h" 34 #include "core/XMLPort.h" 34 35 35 36 namespace orxonox … … 43 44 this->maxMunitionPerMagazine_ = 10; 44 45 this->maxMagazines_ = 10; 45 this->magazines_ = 10; 46 47 this->bUseSeparateMagazines_ = false; 48 this->bStackMunition_ = true; 46 this->unassignedMagazines_ = 10; 47 48 this->deployment_ = MunitionDeployment::Stack; 49 49 this->bAllowMunitionRefilling_ = true; 50 50 this->bAllowMultiMunitionRemovementUnderflow_ = true; 51 51 52 this->reloadTime_ = 0; 52 this->reloadTime_ = 0.5f; 53 54 this->lastFilledWeaponMode_ = NULL; 53 55 } 54 56 55 57 Munition::~Munition() 56 58 { 57 for (std::map<WeaponMode*, Magazine*>::iterator it = this-> currentMagazines_.begin(); it != this->currentMagazines_.end(); ++it)59 for (std::map<WeaponMode*, Magazine*>::iterator it = this->assignedMagazines_.begin(); it != this->assignedMagazines_.end(); ++it) 58 60 delete it->second; 59 61 } 60 62 63 void Munition::XMLPort(Element& xmlelement, XMLPort::Mode mode) 64 { 65 SUPER(Munition, XMLPort, xmlelement, mode); 66 67 XMLPortParam(Munition, "initialmagazines", setNumMagazines, getNumMagazines, xmlelement, mode); 68 XMLPortParam(Munition, "maxmagazines", setMaxMagazines, getMaxMagazines, xmlelement, mode); 69 XMLPortParam(Munition, "munitionpermagazine", setMaxMunitionPerMagazine, getMaxMunitionPerMagazine, xmlelement, mode); 70 } 71 61 72 Munition::Magazine* Munition::getMagazine(WeaponMode* user) const 62 73 { 63 if ( this->bUseSeparateMagazines_)74 if (deployment_ == MunitionDeployment::Separate) 64 75 { 65 76 // For separated magazines we definitively need a given user … … 68 79 69 80 // Use the map to get the magazine assigned to the given user 70 std::map<WeaponMode*, Magazine*>::const_iterator it = this-> currentMagazines_.find(user);71 if (it != this-> currentMagazines_.end())81 std::map<WeaponMode*, Magazine*>::const_iterator it = this->assignedMagazines_.find(user); 82 if (it != this->assignedMagazines_.end()) 72 83 return it->second; 73 84 } … … 75 86 { 76 87 // We don't use separate magazines for each user, so just take the first magazine 77 if (this-> currentMagazines_.size() > 0)78 return this-> currentMagazines_.begin()->second;88 if (this->assignedMagazines_.size() > 0) 89 return this->assignedMagazines_.begin()->second; 79 90 } 80 91 … … 87 98 if (magazine) 88 99 { 89 if ( this->bStackMunition_)100 if (deployment_ == MunitionDeployment::Stack) 90 101 // With stacked munition every magazine contributes to the total amount 91 return this->maxMunitionPerMagazine_ * this-> magazines_ + magazine->munition_;102 return this->maxMunitionPerMagazine_ * this->unassignedMagazines_ + magazine->munition_; 92 103 else 93 104 // Wihtout stacked munition we just consider the current magazine … … 109 120 unsigned int Munition::getNumMagazines() const 110 121 { 111 if ( this->bStackMunition_)122 if (deployment_ == MunitionDeployment::Stack) 112 123 { 113 124 // If we stack munition and the current magazine is still full, it counts too 114 125 Magazine* magazine = this->getMagazine(0); 115 126 if (magazine && magazine->munition_ == this->maxMunitionPerMagazine_) 116 return this->magazines_ + 1; 117 } 118 119 return this->magazines_; 127 return this->unassignedMagazines_ + 1; 128 } 129 130 return this->unassignedMagazines_; 131 } 132 133 void Munition::setNumMagazines(unsigned int numMagazines) 134 { 135 this->unassignedMagazines_ = numMagazines; 120 136 } 121 137 122 138 unsigned int Munition::getMaxMunition() const 123 139 { 124 if ( this->bStackMunition_)140 if (deployment_ == MunitionDeployment::Stack) 125 141 return this->maxMunitionPerMagazine_ * this->maxMagazines_; 126 142 else … … 135 151 unsigned int munition = magazine->munition_; 136 152 137 // If we stack munition, we con't care about the current magazine - we just need enough munition in total 138 if (this->bStackMunition_) 139 munition += this->maxMunitionPerMagazine_ * this->magazines_; 153 // If we stack munition, we don't care about the current magazine - we just need enough munition in total 154 if (deployment_ == MunitionDeployment::Stack) 155 { 156 munition += this->maxMunitionPerMagazine_ * this->unassignedMagazines_; 157 } 140 158 141 159 if (munition == 0) 160 { 142 161 // Absolutely no munition - no chance to take munition 143 162 return false; 163 } 144 164 else if (this->bAllowMultiMunitionRemovementUnderflow_) 165 { 145 166 // We're not empty AND we allow underflow, so this will always work 146 167 return true; 168 } 147 169 else 170 { 148 171 // We don't allow underflow, so we have to check the amount 149 172 return (munition >= amount); 173 } 174 150 175 } 151 176 return false; … … 169 194 { 170 195 // Not enough munition 171 if ( this->bStackMunition_)196 if (deployment_ == MunitionDeployment::Stack) 172 197 { 173 198 // We stack munition, so just take what we can and then load the next magazine … … 175 200 magazine->munition_ = 0; 176 201 177 if (this->reload( 0))202 if (this->reload(NULL)) 178 203 // Successfully reloaded, continue recursively 179 204 return this->takeMunition(amount, 0); … … 199 224 { 200 225 // As long as we have enough magazines (and don't stack munition) we can reload 201 return (this-> magazines_ > 0 && !this->bStackMunition_);226 return (this->unassignedMagazines_ > 0 && deployment_ != MunitionDeployment::Stack); 202 227 } 203 228 … … 207 232 if (magazine) 208 233 { 209 if ( this->bStackMunition_)234 if (deployment_ == MunitionDeployment::Stack) 210 235 // With stacked munition, we never have to reload 211 236 return false; … … 227 252 228 253 // Check if we actually can reload 229 if (this-> magazines_ == 0)254 if (this->unassignedMagazines_ == 0) 230 255 return false; 231 256 232 257 // If we use separate magazines for each user, we definitively need a user given 233 if ( this->bUseSeparateMagazines_&& !user)258 if (deployment_ == MunitionDeployment::Separate && !user) 234 259 return false; 235 260 236 261 // If we don't use separate magazines, set user to 0 237 if (!this->bUseSeparateMagazines_) 238 user = 0; 262 if (deployment_ != MunitionDeployment::Separate) 263 { 264 user = NULL; 265 } 239 266 240 267 // Remove the current magazine for the given user 241 std::map<WeaponMode*, Magazine*>::iterator it = this->currentMagazines_.find(user); 242 if (it != this->currentMagazines_.end()) 243 { 268 std::map<WeaponMode*, Magazine*>::iterator it = this->assignedMagazines_.find(user); 269 if (it != this->assignedMagazines_.end()) 270 { 271 if (it->first == lastFilledWeaponMode_) 272 { 273 lastFilledWeaponMode_ = NULL; 274 } 244 275 delete it->second; 245 this-> currentMagazines_.erase(it);276 this->assignedMagazines_.erase(it); 246 277 } 247 278 248 279 // Load a new magazine 249 this-> currentMagazines_[user] = new Magazine(this, bUseReloadTime);250 this-> magazines_--;280 this->assignedMagazines_[user] = new Magazine(this, bUseReloadTime); 281 this->unassignedMagazines_--; 251 282 252 283 return true; … … 260 291 return false; 261 292 262 if ( this->bStackMunition_)293 if (deployment_ == MunitionDeployment::Stack) 263 294 { 264 295 // If we stack munition, we can always add munition until we reach the limit … … 268 299 { 269 300 // Return true if any of the current magazines is not full (loading counts as full although it returns 0 munition) 270 for (std::map<WeaponMode*, Magazine*>::const_iterator it = this-> currentMagazines_.begin(); it != this->currentMagazines_.end(); ++it)301 for (std::map<WeaponMode*, Magazine*>::const_iterator it = this->assignedMagazines_.begin(); it != this->assignedMagazines_.end(); ++it) 271 302 if (it->second->munition_ < this->maxMunitionPerMagazine_ && it->second->bLoaded_) 272 303 return true; … … 281 312 return false; 282 313 283 if ( this->bStackMunition_)314 if (deployment_ == MunitionDeployment::Stack) 284 315 { 285 316 // Stacking munition means, if a magazine gets full, the munition adds to a new magazine 286 Magazine* magazine = this->getMagazine( 0);317 Magazine* magazine = this->getMagazine(NULL); 287 318 if (magazine) 288 319 { … … 294 325 { 295 326 magazine->munition_ -= this->maxMunitionPerMagazine_; 296 this-> magazines_++;327 this->unassignedMagazines_++; 297 328 } 298 329 299 // If we reached the limit, redu ze both magazines and munition to the maximum300 if (this-> magazines_ >= this->maxMagazines_)301 { 302 this-> magazines_ = this->maxMagazines_ - 1;330 // If we reached the limit, reduce both magazines and munition to the maximum 331 if (this->unassignedMagazines_ >= this->maxMagazines_) 332 { 333 this->unassignedMagazines_ = this->maxMagazines_; 303 334 magazine->munition_ = this->maxMunitionPerMagazine_; 304 335 } … … 312 343 else 313 344 { 345 std::map<WeaponMode*, Magazine*>::iterator it; 346 347 // If the pointer to the weapon mode whose magazine got munition added to is NULL, then set the iterator to the beginning of the map 348 // Otherwise set it to the next weapon mode 349 if (lastFilledWeaponMode_ == NULL) 350 { 351 it = this->assignedMagazines_.begin(); 352 } 353 else 354 { 355 it = this->assignedMagazines_.find(lastFilledWeaponMode_); 356 ++ it; 357 } 358 314 359 // Share the munition equally to the current magazines 360 bool firstLoop = true; 315 361 while (amount > 0) 316 362 { 317 363 bool change = false; 318 for (std::map<WeaponMode*, Magazine*>::iterator it = this->currentMagazines_.begin(); it != this->currentMagazines_.end(); ++it)364 while (it != this->assignedMagazines_.end()) 319 365 { 320 366 // Add munition if the magazine isn't full (but only to loaded magazines) … … 323 369 it->second->munition_++; 324 370 amount--; 371 lastFilledWeaponMode_ = it->first; 325 372 change = true; 326 373 } 374 375 ++it; 327 376 } 328 377 329 378 // If there was no change in a loop, all magazines are full (or locked due to loading) 330 if (!change) 379 // Because the first loop does not start at the beginning of the map we have to treat is separately 380 if (!change && !firstLoop) 381 { 331 382 break; 383 } 384 385 it = this->assignedMagazines_.begin(); 386 firstLoop = false; 332 387 } 333 388 … … 340 395 // TODO: 'amount' is not used 341 396 342 if ( this->bStackMunition_)397 if (deployment_ == MunitionDeployment::Stack) 343 398 // If we stack munition, we can always add new magazines because they contribute directly to the munition 344 399 return (this->getNumMunition(0) < this->getMaxMunition()); 345 400 else 346 401 // If we don't stack munition, we're more limited 347 return ((this->currentMagazines_.size() + this->magazines_) < this->maxMagazines_); 348 } 349 350 bool Munition::addMagazines(unsigned int amount) 351 { 402 return ((this->assignedMagazines_.size() + this->unassignedMagazines_) < this->maxMagazines_); 403 } 404 405 unsigned int Munition::addMagazines(unsigned int amount) 406 { 407 unsigned int addedMagazines = 0; 408 352 409 if (!this->canAddMagazines(amount)) 353 return false;410 return 0; 354 411 355 412 // Calculate how many magazines are needed 356 int needed_magazines = this->maxMagazines_ - this-> magazines_ - this->currentMagazines_.size();413 int needed_magazines = this->maxMagazines_ - this->unassignedMagazines_ - this->assignedMagazines_.size(); 357 414 358 415 // If zero or less magazines are needed, we definitively don't need more magazines (unless we stack munition - then a magazine contributes directly to the munition) 359 if (needed_magazines <= 0 && !this->bStackMunition_)360 return false;416 if (needed_magazines <= 0 && deployment_ != MunitionDeployment::Stack) 417 return 0; 361 418 362 419 if (amount <= static_cast<unsigned int>(needed_magazines)) 363 420 { 364 421 // We need more magazines than we get, so just add them 365 this->magazines_ += amount; 422 this->unassignedMagazines_ += amount; 423 addedMagazines = amount; 366 424 } 367 425 else 368 426 { 369 427 // We get more magazines than we need, so just add the needed amount 370 this->magazines_ += needed_magazines; 371 if (this->bStackMunition_) 428 this->unassignedMagazines_ += needed_magazines; 429 addedMagazines = needed_magazines; 430 if (deployment_ == MunitionDeployment::Stack) 372 431 { 373 432 // We stack munition, so the additional amount contributes directly to the munition of the current magazine … … 378 437 } 379 438 380 return true; 439 // Reload as many empty magazines as possible 440 // Double loop and break is needed because the reload function changes the assigned magazines. This may confuse the iterator. 441 for (unsigned int i = 0; i < addedMagazines; ++i) 442 { 443 for (std::map<WeaponMode*, Magazine*>::iterator it = this->assignedMagazines_.begin(); it != this->assignedMagazines_.end(); ++it) 444 { 445 if (needReload(it->first)) 446 { 447 reload(it->first); 448 break; 449 } 450 } 451 } 452 453 return addedMagazines; 381 454 } 382 455 383 456 bool Munition::canRemoveMagazines(unsigned int amount) const 384 457 { 385 if ( this->bStackMunition_)386 { 387 if (this-> magazines_ >= amount)458 if (deployment_ == MunitionDeployment::Stack) 459 { 460 if (this->unassignedMagazines_ >= amount) 388 461 { 389 462 // We have enough magazines 390 463 return true; 391 464 } 392 else if (this-> magazines_ == amount - 1)465 else if (this->unassignedMagazines_ == amount - 1) 393 466 { 394 467 // We lack one magazine, check if the current magazine is still full, if yes we're fine … … 406 479 { 407 480 // In case we're not stacking munition, just check the number of magazines 408 return (this-> magazines_ >= amount);481 return (this->unassignedMagazines_ >= amount); 409 482 } 410 483 … … 417 490 return false; 418 491 419 if (this-> magazines_ >= amount)492 if (this->unassignedMagazines_ >= amount) 420 493 { 421 494 // We have enough magazines, just remove the amount 422 this-> magazines_ -= amount;423 } 424 else if ( this->bStackMunition_)495 this->unassignedMagazines_ -= amount; 496 } 497 else if (deployment_ == MunitionDeployment::Stack) 425 498 { 426 499 // We don't have enough magazines, but we're stacking munition, so additionally remove the bullets from the current magazine 427 this-> magazines_ = 0;500 this->unassignedMagazines_ = 0; 428 501 Magazine* magazine = this->getMagazine(0); 429 502 if (magazine) … … 437 510 { 438 511 // If we use separate magazines, we need a user 439 if ( this->bUseSeparateMagazines_&& !user)512 if (deployment_ == MunitionDeployment::Separate && !user) 440 513 return false; 441 514 442 515 // If we don't use separate magazines, set user to 0 443 if ( !this->bUseSeparateMagazines_)444 user = 0;516 if (deployment_ != MunitionDeployment::Separate) 517 user = NULL; 445 518 446 519 // Remove the current magazine for the given user 447 std::map<WeaponMode*, Magazine*>::iterator it = this->currentMagazines_.find(user); 448 if (it != this->currentMagazines_.end()) 449 { 520 std::map<WeaponMode*, Magazine*>::iterator it = this->assignedMagazines_.find(user); 521 if (it != this->assignedMagazines_.end()) 522 { 523 if (it->first == lastFilledWeaponMode_) 524 { 525 lastFilledWeaponMode_ = NULL; 526 } 450 527 delete it->second; 451 this-> currentMagazines_.erase(it);528 this->assignedMagazines_.erase(it); 452 529 return true; 453 530 } … … 465 542 this->bLoaded_ = false; 466 543 467 if (bUseReloadTime && munition->reloadTime_ > 0 && !munition-> bStackMunition_)544 if (bUseReloadTime && munition->reloadTime_ > 0 && !munition->deployment_ == MunitionDeployment::Stack) 468 545 { 469 546 const ExecutorPtr& executor = createExecutor(createFunctor(&Magazine::loaded, this)); -
code/branches/presentationHS15/src/orxonox/weaponsystem/Munition.h
r9667 r10961 24 24 * Fabian 'x3n' Landau 25 25 * Co-authors: 26 * ...26 * Fabien Vultier 27 27 * 28 28 */ … … 39 39 namespace orxonox 40 40 { 41 namespace MunitionDeployment 42 { 43 enum Value 44 { 45 Separate, // Every comsuming weapon mode has its own magazine. It is possible that one weapon mode is out of ammo while another still has some. 46 Share, // All comsuming weapon modes take their munition from the same magazine. If this magazine is empty a new one is loaded. 47 Stack // There is only one magazine where all the munition is stored. Use this deployment mode for heavy weapons loke rockets, bombs, ... 48 }; 49 } 50 41 51 class _OrxonoxExport Munition : public BaseObject 42 { 52 { 43 53 struct Magazine 44 54 { … … 59 69 virtual ~Munition(); 60 70 71 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 72 61 73 unsigned int getNumMunition(WeaponMode* user) const; 62 74 unsigned int getNumMunitionInCurrentMagazine(WeaponMode* user) const; … … 68 80 inline unsigned int getMaxMunitionPerMagazine() const 69 81 { return this->maxMunitionPerMagazine_; } 82 inline MunitionDeployment::Value getMunitionDeployment() const 83 { return deployment_; } 84 70 85 71 86 bool canTakeMunition(unsigned int amount, WeaponMode* user) const; … … 82 97 83 98 bool canAddMagazines(unsigned int amount) const; 84 bool addMagazines(unsigned int amount); 99 /** 100 @brief Try to add magazines. 101 @param amount The amount of magazines tried to add. 102 @return The amount of magazines sucessfully added. 103 */ 104 unsigned int addMagazines(unsigned int amount); 85 105 86 106 bool canRemoveMagazines(unsigned int amount) const; … … 92 112 unsigned int maxMunitionPerMagazine_; 93 113 unsigned int maxMagazines_; 94 unsigned int magazines_;95 std::map<WeaponMode*, Magazine*> currentMagazines_;114 unsigned int unassignedMagazines_; // Number of magazines that are not assigned to a weapon mode. These are alway treated as full. 115 std::map<WeaponMode*, Magazine*> assignedMagazines_; // Maps weapon modes to magazines that are currently used. 96 116 97 bool bUseSeparateMagazines_;98 bool bStackMunition_; 117 MunitionDeployment::Value deployment_; // Defines the behaviour how munition and magazines are distributed to the consuming weapon modes. 118 99 119 bool bAllowMunitionRefilling_; 100 120 bool bAllowMultiMunitionRemovementUnderflow_; 101 121 102 float reloadTime_; 122 float reloadTime_; // The time needed to replace a magazine by a new one. 123 WeaponMode* lastFilledWeaponMode_; // Pointer to the weapon mode that got the last munition during the last call of addMunition. 103 124 104 125 private: 105 126 Magazine* getMagazine(WeaponMode* user) const; 127 inline void setMaxMagazines(unsigned int maxMagazines) 128 { this->maxMagazines_ = maxMagazines; } 129 inline void setMaxMunitionPerMagazine(unsigned int maxMunitionPerMagazine) 130 { this->maxMunitionPerMagazine_ = maxMunitionPerMagazine; } 131 void setNumMagazines(unsigned int numMagazines); 106 132 }; 107 133 } -
code/branches/presentationHS15/src/orxonox/weaponsystem/Weapon.cc
r10650 r10961 134 134 } 135 135 136 /** 137 @brief 138 Reload all @ref orxonox::WeaponMode weapon modes of this weapon. 139 */ 136 140 void Weapon::reload() 137 141 { … … 151 155 it->second->setWeapon(this); 152 156 } 157 158 void Weapon::updateMunition() 159 { 160 for (std::multimap<unsigned int, WeaponMode*>::iterator it = this->weaponmodes_.begin(); it != this->weaponmodes_.end(); ++it) 161 it->second->updateMunition(); 162 } 153 163 } -
code/branches/presentationHS15/src/orxonox/weaponsystem/Weapon.h
r10650 r10961 57 57 void addWeaponmode(WeaponMode* weaponmode); 58 58 WeaponMode* getWeaponmode(unsigned int index) const; 59 inline std::multimap<unsigned int, WeaponMode*>* getAllWeaponmodes() 60 { return &weaponmodes_; } 61 inline int getNumWeaponModes() const 62 { return weaponmodes_.size(); } 59 63 60 64 /** … … 75 79 inline WeaponSlot * getWeaponSlot() const 76 80 { return this->weaponSlot_; } 81 void updateMunition(); 77 82 78 83 private: -
code/branches/presentationHS15/src/orxonox/weaponsystem/WeaponMode.cc
r10650 r10961 75 75 this->muzzleOrientation_ = Quaternion::IDENTITY; 76 76 77 hudImageString_ = "WSHUD_WM_Unknown"; 78 77 79 if( GameMode::isMaster() ) 78 80 { … … 125 127 this->bSoundAttached_ = true; 126 128 } 127 129 130 // Fireing is only possible if this weapon mode is not reloading and there is enough munition 128 131 if (!this->bReloading_ && this->munition_ && this->munition_->takeMunition(this->munitionPerShot_, this)) 129 132 { … … 134 137 if (this->munition_->reload(this)) 135 138 { 139 // If true, the weapon reloads in parallel to the magazine reloading 136 140 if (this->bParallelReload_) 141 { 142 // The time needed to reload is the maximum of the reload time of the weapon mode and the magazine. 137 143 tempReloadtime = std::max(this->reloadTime_, this->munition_->getReloadTime()); 144 } 138 145 else 146 { 147 // The time needed to reload is the sum of the reload time of the weapon mode and the magazine. 139 148 tempReloadtime = this->reloadTime_ + this->munition_->getReloadTime(); 149 } 140 150 } 141 151 } 142 152 153 // Mark this weapon mode as reloading and start the reload timer 143 154 this->bReloading_ = true; 144 155 this->reloadTimer_.setInterval(tempReloadtime); … … 232 243 } 233 244 else 234 this->munition_ = 0; 245 { 246 this->munition_ = NULL; 247 } 235 248 } 236 249 … … 283 296 } 284 297 285 void WeaponMode::setDefaultSoundWithVolume(const std::string& soundPath, const float soundVolume){ 286 if (this->defSndWpnFire_) { 298 void WeaponMode::setDefaultSoundWithVolume(const std::string& soundPath, const float soundVolume) 299 { 300 if (this->defSndWpnFire_) 301 { 287 302 this->defSndWpnFire_->setSource(soundPath); 288 303 this->defSndWpnFire_->setVolume(soundVolume); -
code/branches/presentationHS15/src/orxonox/weaponsystem/WeaponMode.h
r10650 r10961 38 38 #include "core/class/SubclassIdentifier.h" 39 39 #include "tools/Timer.h" 40 #include "Munition.h" 40 41 41 42 namespace orxonox … … 104 105 inline bool getParallelReload() const 105 106 { return this->bParallelReload_; } 107 inline bool getReloading() const 108 { return this->bReloading_; } 106 109 107 110 … … 147 150 Vector3 getTarget(); 148 151 152 inline const std::string& getHUDImageString() const 153 { return this->hudImageString_; } 154 155 void updateMunition(); 149 156 protected: 150 157 virtual void fire() = 0; … … 155 162 156 163 float reloadTime_; 157 bool bAutoReload_; 158 bool bParallelReload_; 164 bool bAutoReload_; // If true, the weapon reloads the magazine automatically. 165 bool bParallelReload_; // If true, the weapon reloads in parallel to the magazine reloading. 159 166 160 167 float damage_; … … 163 170 Vector3 muzzleOffset_; 164 171 165 private: 166 void updateMunition(); 172 std::string hudImageString_; 173 174 private: 167 175 void reloaded(); 168 176 … … 175 183 176 184 Timer reloadTimer_; 177 bool bReloading_; 185 bool bReloading_; // If true, this weapon mode is marked as reloading. 178 186 179 187 Vector3 muzzlePosition_; … … 181 189 182 190 WorldSound* defSndWpnFire_; 183 bool 191 bool bSoundAttached_; 184 192 }; 185 193 } -
code/branches/presentationHS15/src/orxonox/weaponsystem/WeaponPack.cc
r10650 r10961 124 124 } 125 125 126 std::vector<Weapon*>* WeaponPack::getAllWeapons() 127 { 128 return &weapons_; 129 } 130 126 131 void WeaponPack::addDefaultWeaponmodeLink(DefaultWeaponmodeLink* link) 127 132 { … … 156 161 (*it)->setWeaponPack(this); 157 162 } 163 164 void WeaponPack::updateMunition() 165 { 166 for (std::vector<Weapon *>::const_iterator it = this->weapons_.begin(); it != this->weapons_.end(); ++it) 167 (*it)->updateMunition(); 168 } 158 169 } -
code/branches/presentationHS15/src/orxonox/weaponsystem/WeaponPack.h
r9667 r10961 52 52 void removeWeapon(Weapon * weapon); 53 53 Weapon * getWeapon(unsigned int index) const; 54 std::vector<Weapon*>* getAllWeapons(); 54 55 55 56 inline size_t getNumWeapons() const … … 65 66 inline WeaponSystem * getWeaponSystem() const 66 67 { return this->weaponSystem_; } 68 void updateMunition(); 67 69 68 70 private: -
code/branches/presentationHS15/src/orxonox/weaponsystem/WeaponSystem.cc
r10650 r10961 240 240 } 241 241 242 std::vector<WeaponPack *> * WeaponSystem::getAllWeaponPacks() 243 { 244 return &weaponPacks_; 245 } 246 242 247 bool WeaponSystem::swapWeaponSlots(WeaponSlot * wSlot1, WeaponSlot * wSlot2) 243 248 { … … 310 315 return it->second; 311 316 } 312 else if (identifier->getIdentifier()->isA(Class(Munition)))313 {314 Munition* munition = identifier->fabricate(this->getContext());315 this->munitions_[identifier->getIdentifier()] = munition;316 return munition;317 }318 317 else 319 318 { 320 return 0; 319 return NULL; 320 } 321 } 322 323 void WeaponSystem::addMunition(Munition* munition) 324 { 325 if (munition == NULL) 326 { 327 return; 328 } 329 330 SubclassIdentifier<Munition> identifier = munition->getIdentifier(); 331 332 if (identifier) 333 { 334 this->munitions_[identifier] = munition; 335 updateMunition(); 336 } 337 else 338 { 339 orxout(internal_warning) << "Adding munition failed. identifier == NULL " << endl; 340 } 341 } 342 343 void WeaponSystem::updateMunition() 344 { 345 for (std::vector<WeaponPack*>::iterator it = this->weaponPacks_.begin(); it != this->weaponPacks_.end(); ++it) 346 { 347 (*it)->updateMunition(); 321 348 } 322 349 } -
code/branches/presentationHS15/src/orxonox/weaponsystem/WeaponSystem.h
r10650 r10961 67 67 void removeWeaponPack(WeaponPack * wPack); 68 68 WeaponPack * getWeaponPack(unsigned int index) const; 69 std::vector<WeaponPack *> * getAllWeaponPacks(); 69 70 70 71 // configure slots and firemodes … … 76 77 77 78 Munition * getMunition(SubclassIdentifier<Munition> * identifier); 79 void addMunition(Munition* munition); 78 80 79 81 inline void setPawn(Pawn * pawn) … … 95 97 96 98 private: 99 void updateMunition(); 100 97 101 std::map<unsigned int, WeaponSet *> weaponSets_; 98 102 std::vector<WeaponSlot *> weaponSlots_; -
code/branches/presentationHS15/src/orxonox/worldentities/MobileEntity.h
r10437 r10961 47 47 linear velocity. Then the linear velocity is multiplied by the time since the last call of tick and then added to the position. The same happens with 48 48 the angular acceleration and velocity. With this procedure MobileEntities can change their position and orientation with time. 49 50 A MobileEntity can only have the collisition type WorldEntity::None, WorldEntity::Dynamic or WorldEntity::Kinematic. The collsion type WorldEntity::Static is illegal. 49 51 */ 50 52 -
code/branches/presentationHS15/src/orxonox/worldentities/StaticEntity.h
r10437 r10961 44 44 it is called StaticEntity. It will keep the same position (always with respect to its parent) forever unless you call the 45 45 function @see setPosition to changee it. 46 47 A StaticEntity can only have the collisition type WorldEntity::None or WorldEntity::Static. The collsion types WorldEntity::Dynamic and WorldEntity::Kinematic are illegal. 46 48 */ 47 49 -
code/branches/presentationHS15/src/orxonox/worldentities/pawns/Pawn.cc
r10650 r10961 46 46 #include "weaponsystem/WeaponPack.h" 47 47 #include "weaponsystem/WeaponSet.h" 48 #include "weaponsystem/Munition.h" 48 49 #include "sound/WorldSound.h" 49 50 … … 61 62 62 63 this->bAlive_ = true; 63 this->bReload_ = false;64 64 65 65 this->health_ = 0; … … 71 71 this->maxShieldHealth_ = 100; //otherwise shield might increase to float_max 72 72 this->shieldAbsorption_ = 0.5; 73 74 this->reloadRate_ = 0; 75 this->reloadWaitTime_ = 1.0f; 76 this->reloadWaitCountdown_ = 0; 73 this->shieldRechargeRate_ = 0; 74 this->shieldRechargeWaitTime_ = 1.0f; 75 this->shieldRechargeWaitCountdown_ = 0; 77 76 78 77 this->lastHitOriginator_ = 0; … … 141 140 XMLPortObject(Pawn, WeaponSlot, "weaponslots", addWeaponSlot, getWeaponSlot, xmlelement, mode); 142 141 XMLPortObject(Pawn, WeaponSet, "weaponsets", addWeaponSet, getWeaponSet, xmlelement, mode); 143 XMLPortObject(Pawn, WeaponPack, "weapons", addWeaponPackXML, getWeaponPack, xmlelement, mode); 144 145 XMLPortParam(Pawn, "reloadrate", setReloadRate, getReloadRate, xmlelement, mode).defaultValues(0); 146 XMLPortParam(Pawn, "reloadwaittime", setReloadWaitTime, getReloadWaitTime, xmlelement, mode).defaultValues(1.0f); 142 XMLPortObject(Pawn, WeaponPack, "weaponpacks", addWeaponPackXML, getWeaponPack, xmlelement, mode); 143 XMLPortObject(Pawn, Munition, "munition", addMunitionXML, getMunitionXML, xmlelement, mode); 144 145 XMLPortParam(Pawn, "shieldrechargerate", setShieldRechargeRate, getShieldRechargeRate, xmlelement, mode).defaultValues(0); 146 XMLPortParam(Pawn, "shieldrechargewaittime", setShieldRechargeWaitTime, getShieldRechargeWaitTime, xmlelement, mode).defaultValues(1.0f); 147 147 148 148 XMLPortParam(Pawn, "explosionSound", setExplosionSound, getExplosionSound, xmlelement, mode); … … 153 153 void Pawn::registerVariables() 154 154 { 155 registerVariable(this->bAlive_, VariableDirection::ToClient); 156 registerVariable(this->health_, VariableDirection::ToClient); 157 registerVariable(this->maxHealth_, VariableDirection::ToClient); 158 registerVariable(this->shieldHealth_, VariableDirection::ToClient); 159 registerVariable(this->maxShieldHealth_, VariableDirection::ToClient); 160 registerVariable(this->shieldAbsorption_, VariableDirection::ToClient); 161 registerVariable(this->bReload_, VariableDirection::ToServer); 162 registerVariable(this->aimPosition_, VariableDirection::ToServer); // For the moment this variable gets only transfered to the server 155 registerVariable(this->bAlive_, VariableDirection::ToClient); 156 registerVariable(this->health_, VariableDirection::ToClient); 157 registerVariable(this->maxHealth_, VariableDirection::ToClient); 158 registerVariable(this->shieldHealth_, VariableDirection::ToClient); 159 registerVariable(this->maxShieldHealth_, VariableDirection::ToClient); 160 registerVariable(this->shieldAbsorption_, VariableDirection::ToClient); 161 registerVariable(this->aimPosition_, VariableDirection::ToServer); // For the moment this variable gets only transfered to the server 163 162 } 164 163 … … 167 166 SUPER(Pawn, tick, dt); 168 167 169 this->bReload_ = false; 170 168 // Recharge the shield 171 169 // TODO: use the existing timer functions instead 172 if(this-> reloadWaitCountdown_ > 0)173 { 174 this->decrease ReloadCountdownTime(dt);175 } 176 else 177 { 178 this->addShieldHealth(this->get ReloadRate() * dt);179 this->reset ReloadCountdown();170 if(this->shieldRechargeWaitCountdown_ > 0) 171 { 172 this->decreaseShieldRechargeCountdownTime(dt); 173 } 174 else 175 { 176 this->addShieldHealth(this->getShieldRechargeRate() * dt); 177 this->resetShieldRechargeCountdown(); 180 178 } 181 179 … … 229 227 } 230 228 231 void Pawn::set ReloadRate(float reloadrate)232 { 233 this-> reloadRate_ = reloadrate;234 } 235 236 void Pawn::set ReloadWaitTime(float reloadwaittime)237 { 238 this-> reloadWaitTime_ = reloadwaittime;239 } 240 241 void Pawn::decrease ReloadCountdownTime(float dt)242 { 243 this-> reloadWaitCountdown_ -= dt;229 void Pawn::setShieldRechargeRate(float shieldRechargeRate) 230 { 231 this->shieldRechargeRate_ = shieldRechargeRate; 232 } 233 234 void Pawn::setShieldRechargeWaitTime(float shieldRechargeWaitTime) 235 { 236 this->shieldRechargeWaitTime_ = shieldRechargeWaitTime; 237 } 238 239 void Pawn::decreaseShieldRechargeCountdownTime(float dt) 240 { 241 this->shieldRechargeWaitCountdown_ -= dt; 244 242 } 245 243 … … 252 250 if (this->getGametype() && this->getGametype()->allowPawnDamage(this, originator)) 253 251 { 252 // Health-damage cannot be absorbed by shields. 253 // Shield-damage only reduces shield health. 254 // Normal damage can be (partially) absorbed by shields. 255 254 256 if (shielddamage >= this->getShieldHealth()) 255 257 { … … 480 482 } 481 483 482 void Pawn::reload()483 {484 this->bReload_ = true;485 }486 487 484 void Pawn::postSpawn() 488 485 { … … 554 551 } 555 552 553 std::vector<WeaponPack *> * Pawn::getAllWeaponPacks() 554 { 555 if (this->weaponSystem_) 556 return this->weaponSystem_->getAllWeaponPacks(); 557 else 558 return 0; 559 } 560 561 void Pawn::addMunitionXML(Munition* munition) 562 { 563 if (this->weaponSystem_ && munition) 564 { 565 this->weaponSystem_->addMunition(munition); 566 } 567 } 568 569 Munition* Pawn::getMunitionXML() const 570 { 571 return NULL; 572 } 573 574 Munition* Pawn::getMunition(SubclassIdentifier<Munition> * identifier) 575 { 576 if (weaponSystem_) 577 { 578 return weaponSystem_->getMunition(identifier); 579 } 580 581 return NULL; 582 } 583 556 584 //Tell the Map (RadarViewable), if this is a playership 557 585 void Pawn::startLocalHumanControl() 558 586 { 559 // SUPER(ControllableEntity, changedPlayer());587 // SUPER(ControllableEntity, startLocalHumanControl()); 560 588 ControllableEntity::startLocalHumanControl(); 561 589 this->isHumanShip_ = true; -
code/branches/presentationHS15/src/orxonox/worldentities/pawns/Pawn.h
r10437 r10961 42 42 /** 43 43 @brief 44 Everything in Orxono ythat has a health attribute is a Pawn. After a Pawn is spawned its health is set to44 Everything in Orxonox that has a health attribute is a Pawn. After a Pawn is spawned its health is set to 45 45 its initial health. In every call of the Pawns tick function the game checks whether the pawns health is at 46 46 or below zero. If it is, the pawn gets killed. 47 47 48 Pawns can carry pickups and fire weapons. The can also have shields.48 Pawns can carry pickups and fire weapons. They can also have shields. 49 49 50 50 Notice that every Pawn is a ControllableEntity. … … 116 116 { return this->shieldAbsorption_; } 117 117 118 // TODO: Rename to shieldRechargeRate 119 virtual void setReloadRate(float reloadrate); 120 inline float getReloadRate() const 121 { return this->reloadRate_; } 122 123 virtual void setReloadWaitTime(float reloadwaittime); 124 inline float getReloadWaitTime() const 125 { return this->reloadWaitTime_; } 126 127 inline void resetReloadCountdown() 128 { this->reloadWaitCountdown_ = 0; } 129 130 inline void startReloadCountdown() 131 { this->reloadWaitCountdown_ = this->getReloadWaitTime(); } // TODO: Implement in Projectile.cc 132 133 virtual void decreaseReloadCountdownTime(float dt); 118 virtual void setShieldRechargeRate(float shieldRechargeRate); 119 inline float getShieldRechargeRate() const 120 { return this->shieldRechargeRate_; } 121 122 virtual void setShieldRechargeWaitTime(float shieldRechargeWaitTime); 123 inline float getShieldRechargeWaitTime() const 124 { return this->shieldRechargeWaitTime_; } 125 126 inline void resetShieldRechargeCountdown() 127 { this->shieldRechargeWaitCountdown_ = 0; } 128 129 inline void startShieldRechargeCountdown() 130 { this->shieldRechargeWaitCountdown_ = this->getShieldRechargeWaitTime(); } // TODO: Implement in Projectile.cc 131 132 virtual void decreaseShieldRechargeCountdownTime(float dt); 134 133 135 134 inline ControllableEntity* getLastHitOriginator() const 136 135 { return this->lastHitOriginator_; } 137 136 138 //virtual void hit(Pawn* originator, const Vector3& force, float damage);139 //virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage);140 137 virtual void hit(Pawn* originator, const Vector3& force, const btCollisionShape* cs, float damage, float healthdamage = 0.0f, float shielddamage = 0.0f); 141 138 virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, const btCollisionShape* cs, float damage, float healthdamage = 0.0f, float shielddamage = 0.0f); … … 144 141 145 142 virtual void fired(unsigned int firemode); 146 virtual void reload();147 143 virtual void postSpawn(); 148 144 … … 154 150 void addWeaponPackXML(WeaponPack * wPack); 155 151 WeaponPack * getWeaponPack(unsigned int index) const; 152 std::vector<WeaponPack *> * getAllWeaponPacks(); 153 154 void addMunitionXML(Munition* munition); 155 Munition* getMunitionXML() const; 156 157 Munition* getMunition(SubclassIdentifier<Munition> * identifier); 156 158 157 159 virtual void addedWeaponPack(WeaponPack* wPack) {} … … 207 209 virtual void spawneffect(); 208 210 209 //virtual void damage(float damage, Pawn* originator = 0);210 211 virtual void damage(float damage, float healthdamage = 0.0f, float shielddamage = 0.0f, Pawn* originator = NULL, const btCollisionShape* cs = NULL); 211 212 … … 226 227 float initialShieldHealth_; 227 228 float shieldAbsorption_; ///< Has to be between 0 and 1 228 float reloadRate_;229 float reloadWaitTime_;230 float reloadWaitCountdown_;229 float shieldRechargeRate_; 230 float shieldRechargeWaitTime_; 231 float shieldRechargeWaitCountdown_; 231 232 232 233 float damageMultiplier_; ///< Used by the Damage Boost Pickup. … … 235 236 236 237 WeaponSystem* weaponSystem_; 237 bool bReload_;238 238 239 239 std::string spawnparticlesource_; -
code/branches/presentationHS15/src/orxonox/worldentities/pawns/SpaceShip.cc
r10216 r10961 297 297 } 298 298 } 299 300 void SpaceShip::gainBoostPower(float gainedBoostPower) 301 { 302 this->boostPower_ += gainedBoostPower; 303 304 if (this->boostPower_ > this->initialBoostPower_) 305 { 306 this->boostPower_ = this->initialBoostPower_; 307 } 308 309 // If the booster is in cooldown mode and we gained boost power, the abort the cooldown. 310 if (this->isBoostCoolingDown() && this->boostPower_ > 0.0f) 311 { 312 timer_.stopTimer(); 313 this->boostCooledDown(); 314 } 315 } 316 299 317 /** 300 318 @brief -
code/branches/presentationHS15/src/orxonox/worldentities/pawns/SpaceShip.h
r10437 r10961 53 53 - The <b>boost</b>, there are quite some parameters pertaining to boosting. The boost is a special move of the SpaceShip, where, for a limited amount of time, it can fly considerably faster than usual. The <b>boostPower</b> is the amount of power available for boosting. The <b>boostPowerRate</b> is the rate at which the boost power is replenished. The <b>boostRate</b> is the rate at which boosting uses power. And the <b>boostCooldownDuration</b> is the time the SpaceShip cannot boost, once all the boost power has been used up. Naturally all of these parameters must be non-negative. 54 54 - The <b>boost shaking</b>, when the SpaceShip boosts, the camera shakes to create a more immersive effect. Two parameters can be used to adjust the effect. The <b>shakeFrequency</b> is the frequency with which the camera shakes. And the <b>shakeAmplitude</b> is the amount with which the camera shakes. Again these parameters must bee non-negative. 55 - The <b>lift</b> creates a more natural flight feeling through the addition of a lift force. There are again tow parameters that can be specified. The <b>lift</b> which is the lift force that is applied. And the <b>stallSpeed</b> which is the forward speed after which no more lift is generated. 55 - The <b>lift</b> creates a more natural flight feeling through the addition of a lift force. There are again two parameters that can be specified. The <b>lift</b> which is the lift force that is applied. And the <b>stallSpeed</b> which is the forward speed after which no more lift is generated. 56 57 A spaceship always needs to have the collision type "dynamic". Other collision types are illegal. 56 58 57 59 As mentioned @ref orxonox::Engine Engines can be mounted on the SpaceShip. Here is a (primitive) example of a SpaceShip defined in XML: … … 250 252 inline float getShakeAmplitude() const 251 253 { return this->shakeAmplitude_; } 254 /** 255 @brief Add boost power. Is non-negative. 256 @return Returns the current boost power. 257 */ 258 void gainBoostPower(float gainedBoostPower); 252 259 253 260 protected: … … 262 269 bool bBoostCooldown_; //!< Whether the SpaceShip is currently in boost cooldown, during which boosting is impossible. 263 270 float initialBoostPower_; //!< The initial (and maximal) boost power. 264 float boostPower_; //!< The current boost power. 271 float boostPower_; //!< The current boost power. If the boost power is reduced to zero the boost cooldown will start. 265 272 float boostPowerRate_; //!< The rate at which the boost power is recharged. 266 273 float boostRate_; //!< The rate at which boost power is used up. … … 289 296 std::vector<Engine*> engineList_; //!< The list of all Engines mounted on this SpaceShip. 290 297 291 Timer timer_; //!< Timer for the cooldown duration.298 Timer timer_; //!< Timer for the cooldown of the boost. 292 299 float shakeDt_; //!< Temporary variable for the shaking of the camera. 293 300 Vector3 cameraOriginalPosition_; //!< The original position of the camera before shaking it.
Note: See TracChangeset
for help on using the changeset viewer.